segunda-feira, 8 de agosto de 2011

[java-br] One-to-one - Na primeira tabela executa insert e na segunda update!!!!

·

 


Olá pessoal.

Sou iniciante no uso do hibernate e comecei com uma aplicação simples para estudar. Versão 3.6.6.

Estou fazendo um mapeamento one-to-one. Quando mando gravar os dados o hibernate executa a seguinte instrução sql.

Hibernate:
insert
into
pessoa
(nome_pessoa, id_pessoa)
values
(?, ?)
Hibernate:
update
Endereco
set
desc_endereco=?
where
id_endereco=?

Sendo que deveria executar 2 inserts. Alguém saberia me ajudar a descobrir o problema?

public static void main(String[] args)
{

Pessoa pessoa = new Pessoa();
pessoa.setId_pessoa(2);
pessoa.setNome_pessoa("Nome da Pessoa");
Endereco endereco = new Endereco();
endereco.setId_endereco(pessoa.getId_pessoa());
endereco.setDesc_endereco("Rua tal, numero 20");
pessoa.setEndereco(endereco);
int retorno = insertPessoa(pessoa);
JOptionPane.showMessageDialog(null, "Código cadastrado: " + retorno);
}

public static int insertPessoa(Pessoa pessoa)
{

try
{
Session sessao = HibernateUtil.getSession();

Transaction tspessoa = sessao.beginTransaction();
sessao.save(pessoa);
tspessoa.commit();
sessao.close();
return pessoa.getId_pessoa();
}
catch (Exception erro)
{
JOptionPane.showMessageDialog(null, "Erro na Inserção: " + erro);
return 0;
}

}

Meus arquivos hbm estão assim:
Endereco.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="br.com.optionsistemas.onetoone">
<class name="Endereco" table="Endereco">
<id name="id_endereco" column="id_endereco" type="integer" unsaved-value="null">
</id>
<property name="desc_endereco"/>
</class>
</hibernate-mapping>

Pessoa.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="br.com.optionsistemas.onetoone">
<class name="Pessoa" table="pessoa">
<id name="id_pessoa" column="id_pessoa" type="integer" unsaved-value="null">
</id>
<property name="nome_pessoa"/>
<one-to-one
class="br.com.optionsistemas.onetoone.Endereco"
cascade="save-update"
name="endereco"
/>
</class>
</hibernate-mapping>

arquivo hibernate.cfg

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<mapping resource="br/com/optionsistemas/onetoone/Pessoa.hbm.xml"/>
<mapping resource="br/com/optionsistemas/onetoone/Endereco.hbm.xml"/>
</session-factory>
</hibernate-configuration>

arquivo hibernate.properties

hibernate.connection.driver_class = org.firebirdsql.jdbc.FBDriver
hibernate.connection.url = jdbc:firebirdsql:localhost/3050:C:\\BDTest\\BaseAssociations.FDB
hibernate.connection.username = SYSDBA
hibernate.connection.password = masterkey
hibernate.dialect = org.hibernate.dialect.FirebirdDialect
hibernate.show_sql = true
hibernate.format_sql = true
hibernate.connection.charset = ISO8859_1
hibernate.connection.lc_ctype = ISO8859_1
hibernate.pool_size = 10

__._,_.___
Atividade nos últimos dias:
Para sair da lista, envie email para: java-br-unsubscribe@yahoogroups.com
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br
.

__,_._,___

0 comentários:

Pague com LPs do Mister Colibri

Pague com LPs do Mister Colibri
Quer comprar celular,Tablet,pen drive, GPS e muito outros produtos e ainda podendo pagar tudo em LPs ?Pois saiba que isso é possível,basta você visitar o site downloadstotal.com e realizar a sua compra com toda tranquilidade e segurança!!!

Hora

Online

Arquivo do Blog