Hibernate associacoes
01/07/2011
0
Estou com um problema
Na associação um-para-muitos o hibernate faz a seguinte operação no banco.
class produto
idprod
dsprod
Set embalagem
class embalagem
idemb
dsemb
--mapeamento
<set name="embalagem_prod" table="EMBALAGEM" cascade="save-update" inverse="false">
<key>
<column name="ID_PROD" not-null="true"/>
</key>
<one-to-many class="ledtek.Compra.Embalagem"/>
</set> --manipulação BD Hibernate: //ok
select
gen_id( PROXNUMPRODUTO,
1 )
from
RDB$DATABASE
Hibernate: //ok
select
embalagem_.ID_EMB,
embalagem_.DS_EMB as DS2_2_
from
EMBALAGEM embalagem_
where
embalagem_.ID_EMB=?
Hibernate: //ok
insert
into
PRODUTOS
(DS_PRODUTO, ID_DEPARTAMENTO, ID_PRODUTO)
values
(?, ?, ?)
nessa parte aqui ele faz uma inserção na table embalagem depois faz um update tb. duas ações sendo q poderia ser feito apenas uma. Existe uma forma de mudar essa inserção ? Hibernate:
insert
into
EMBALAGEM
(DS_EMB, ID_EMB)
values
(?, ?)
Hibernate:
update
EMBALAGEM
set
ID_PRODUTO=?
where
ID_EMB=?
CONSTRUÍDO COM SUCESSO (tempo total: 8 segundos)
<key>
<column name="ID_PROD" not-null="true"/>
</key>
<one-to-many class="ledtek.Compra.Embalagem"/>
</set> --manipulação BD Hibernate: //ok
select
gen_id( PROXNUMPRODUTO,
1 )
from
RDB$DATABASE
Hibernate: //ok
select
embalagem_.ID_EMB,
embalagem_.DS_EMB as DS2_2_
from
EMBALAGEM embalagem_
where
embalagem_.ID_EMB=?
Hibernate: //ok
insert
into
PRODUTOS
(DS_PRODUTO, ID_DEPARTAMENTO, ID_PRODUTO)
values
(?, ?, ?)
nessa parte aqui ele faz uma inserção na table embalagem depois faz um update tb. duas ações sendo q poderia ser feito apenas uma. Existe uma forma de mudar essa inserção ? Hibernate:
insert
into
EMBALAGEM
(DS_EMB, ID_EMB)
values
(?, ?)
Hibernate:
update
EMBALAGEM
set
ID_PRODUTO=?
where
ID_EMB=?
CONSTRUÍDO COM SUCESSO (tempo total: 8 segundos)
Thiago Cruz
Curtir tópico
+ 0
Responder
Posts
01/07/2011
Davi Costa
Seria interessante vermos todo o relacionamento (os dois xml's). E tb a chamada desse insert, as vezes ja tive problemas parecidos usando jsf... por conta de uma regra de negócio complexa que tinha na tela com auto-relacionamento. Tem que analisar com bem cuidado sua situação.
Dá uma olhada nesses links:
http://www.mkyong.com/hibernate/hibernate-cascade-example-save-update-delete-and-delete-orphan/
http://ngdns.co.uk/elearning_blog/
https://forum.hibernate.org/viewtopic.php?f=1&t=973978
https://forum.hibernate.org/viewtopic.php?f=1&t=944021
http://www.guj.com.br/prepost/72969/383393/ficheiro-hbmxml-em-vez-de-fazer-insert-faz-update-preciso-de-ajuda-urgente
att Davi
Dá uma olhada nesses links:
http://www.mkyong.com/hibernate/hibernate-cascade-example-save-update-delete-and-delete-orphan/
http://ngdns.co.uk/elearning_blog/
https://forum.hibernate.org/viewtopic.php?f=1&t=973978
https://forum.hibernate.org/viewtopic.php?f=1&t=944021
http://www.guj.com.br/prepost/72969/383393/ficheiro-hbmxml-em-vez-de-fazer-insert-faz-update-preciso-de-ajuda-urgente
att Davi
Responder
08/07/2011
Dyego Carmo
Olha , quando eu me embanano todo com o hibernate e seus relacionamentos eu costumo fazer por outro lado... eu vou e crio toda a estrutura no banco e mando ele ler HEHE.... sei que não é o mais correto , mas as vezes fica BEM complicado lembrar de todos os "detalhes"
:)
Valeu !
:)
Valeu !
Responder
Clique aqui para fazer login e interagir na Comunidade :)