Voltar

Release: Yamapper 12.1.19.1149

Em Releases | 19/01/2012 13:12 Intentor Projects

Uma nova versão do Yamapper está disponível, contemplando acréscimo de driver para conexão e mapeamento do gerenciador de banco de dados PostgreSQL.

Utilização

Conexão

Para acesso ao PostgreSQL, deve-se utilizar o provedor de dados Npgsql, o qual já está configurado para sua versão 2.0.11.92 no Yamapper.

No exemplo abaixo é demonstrado como definir uma conexão a um banco de dados PostgreSQL no arquivo de configurações do Yamapper:

<?xml version="1.0" encoding="utf-8" ?>
<yamapper-configuration xmlns="urn:yamapper-configuration-10.4.1.0">
	<yamapper mappingsFolder="Util\Mappings" />
	<databaseConnections>
		<connection name="PostgreSQL"
			connectionString="Server=localhost;Port=5432;Database=yamapper;User Id=yamapper;Password=abc1234;"
			provider="Intentor.Yamapper.Drivers.PostgreSqlDriver" />
	</databaseConnections>
</yamapper-configuration>

Caso a versão utilizada do provedor Npgsql seja diferente da versão padrão configurada no Yamapper (2.0.11.92), pode-se alterar o assembly a partir do uso do atributo params do elemento connection:

<connection name="PostgreSQL"
	connectionString="Server=localhost;Port=5432;Database=DB;User Id=yamapper;Password=abc1234;"
	provider="Intentor.Yamapper.Drivers.PostgreSqlDriver"
	params="assembly:Npgsql, Version=2.0.11, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />

Mapeamento

Recomenda-se a não utilização de campos do tipo serial em chaves primárias para simular autonumeração. O Yamapper não será capaz de obter o valor inserido e o objeto mapeado não terá o campo preenchido, podendo gerar inconsistência de dados.

Para contornar esse detalhe, assim como ocorre no Oracle, recomenda-se a utilização de sequences para cada um dos campos que requeiram autonumeração, indicando-as diretamente no arquivo de mapeamento.

Segue abaixo um exemplo do uso de sequence, no qual a chave primária id_cliente será populada automaticamente pelo Yamapper a partir da sequence sq_tb_cliente_id_cliente:

<?xml version="1.0" encoding="utf-8" ?>
<yamapper-mapping xmlns="urn:yamapper-mapping-10.8.23.0">
	<class table="tb_cliente" name="Intentor.Model.Core.Entities.Cliente, Intentor.Model">
		<property name="IdCliente" column="id_cliente" isPrimaryKey="true" sequenceName="sq_tb_cliente_id_cliente" />
		<property name="Nome" column="nome"  />
		<property name="DataCadastro" column="data_cadastro" allowNull="true" />
	</class>
</yamapper-mapping>

Ao infinito e além

Caso tenha alguma dúvida, curiosidade, trauma ou angústia sobre o projeto, ou apenas deseja elogiá-lo, utilize o espaço de comentários mais abaixo para entrar em contato.

Comentários Ainda não foram postados comentários
Comentar
Campos marcados com * são obrigatórios. Seu e-mail não será exibido.
*
*
*
Captcha *
CATEGORIAS AO TOPO E ALÉM LUGARES PARA IR
Topo

“Quando o passado não ilumina o futuro, o espírito vive em trevas.” - Tocqueville