Olá amigos, estou com uma situação que para mim é nova e nunca tinha tratado.
Seguinte:
Tenho um objeto Equipe, que tem um atributo “lider” ( um OneToOne com o objeto Usuario ).
Quando crio uma equipe, seto o usuario que a criou como o lider e funciona tranquilo. Mass… preciso alterar esse mesmo usuario para receber o id da equipe no campo “lider_id” do objeto usuario, e dai começa o problema, pois no banco a equipe já está salva com id e tudo mais, sendo que no java, naquele objeto que estou setando no usuario e mandando fazer o update nele, o id ainda está como “0” já que o hibernate não seta no objeto e sim quando vai fazer o save no banco.
E daí… “No row with the given identifier exists” dá esse erro.
Olá amigos, estou com uma situação que para mim é nova e nunca tinha tratado.
Seguinte:
Tenho um objeto Equipe, que tem um atributo “lider” ( um OneToOne com o objeto Usuario ).
Quando crio uma equipe, seto o usuario que a criou como o lider e funciona tranquilo. Mass… preciso alterar esse mesmo usuario para receber o id da equipe no campo “lider_id” do objeto usuario, e dai começa o problema, pois no banco a equipe já está salva com id e tudo mais, sendo que no java, naquele objeto que estou setando no usuario e mandando fazer o update nele, o id ainda está como “0” já que o hibernate não seta no objeto e sim quando vai fazer o save no banco.
E daí… “No row with the given identifier exists” dá esse erro.
Põe parte envolvida do código e modelo de entidades, comentando onde ocorre o problema pra nos facilitar.
Olha eu não entendi direito o que você quer que a sua aplicação faça…
Poderia ser mais claro?!
Pois o que não entendi foi que ao criar a equipe, aquele que a criou fica como líder, até aí ok. Mas também, você quer que o campo lider_id receba o id da equipe criada, é isso, é esse o problema?!
[/size]
Hebert_Coelho
De onde você está tirando a equipe?
darksteel3000
Olá Hebert, eu tiro a equipe do cadastro que o usuario preencheu em JSF.
Resumindo a obra, eu quero que o cara quando criar a equipe, seja automaticamente o lider dela.
darksteel3000
Resolvido amigos, infelizmente eu tinha esquecido que utilizando o metodo “save” ao inves do “merge” eu conseguiria obter um serializable com o valor do id inserido pelo hibernate.
Obrigado a todos !!!
javaflex
darksteel3000:
Olá Hebert, eu tiro a equipe do cadastro que o usuario preencheu em JSF.
Resumindo a obra, eu quero que o cara quando criar a equipe, seja automaticamente o lider dela.
Não sei se entendi bem, mas se no seu modelo uma equipe possui um líder e vice-versa, por que necessita gravar a equipe no líder? Poderia deixar mapeado esse inverso só para leitura. Mas tentando ajudar no que está escrito do jeito que você fez, você poderia dar um Save (ou Update dependendo do contexto) seguido de Flush no objeto equipe antes de gravar o objeto lider, isso vai garantir que tudo foi realmente enviado pro banco de verdade, e mantenha todo esse processo numa mesma transação. Eu nunca usei esse Merge, só usei Save, Update ou SaveOrUpdate.