Release: Yamapper 12.1.19.1149
Em Releases | 19/01/2012 13:12
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.