Pra mim parece correto, afinal você está invocando o método save que imagino que seja equivalente a um persist.
Se você estivesse invocando merge aí sim acredito que as entidades da lista seriam alteradas.
(Estou pensando tudo na teoria, não testei essas coisas, mas você pode testar)
L
lgGodoy
Testei em debug e verifiquei que estou chamando o persist do entityManager
e tbm verifiquei que no sql gerado pelo jpa nao tem a coluna trn_id do relacionamento
vejam o sql gerado
insert into sns_versao_treinamento (rgc_id, ver_id, vtr_isTreinado) values (?, ?, ?)
o que pode esta ocasionando isso?
obrigado.
L
lgGodoy
Ja tentei de varias maneiras e nunca salva o id do treinamento na tabela de versaoTreinamento.
Mesmo qdo salvo separadamente.
E
edubiss
lgGodoy,
Nos relacionamentos OneToMany, você deve usar o relacionamento bi-direcional, ou seja, mapear os relacionamentos nas duas entidades.
Você até pode usar o relacionamento uni-direcional (somente o OneToMany), mas dai terias que referenciar a coluna no referencedColumnName (somente a partir do JPA 2.0).
Testei desta maneira e funcionou, porem da um trabalhao pra salvar isso,
tenho que salvar o treinamento percorro a lista de versoesTreinamento e
pego versao a versao e seto o treinamento salvo, depois adiciono a lista de versoes
alterada ao treinamento e salvo ele novamente.
Isto é mto trabalho o hibernate nao deveria resolver isso pra mim???
E
edubiss
Não precisa setar o objeto da versao_treinamento.
Só o
e depois salvar já cria o vínculo entre as tabelas do banco.
L
lgGodoy
Tentei desta maneira e nao salva o id na tabela, tentei salvar o treinamento primeiro e depois incluir as versoes e salvar novamente o treinamento e tbm nao funcionou
E
edubiss
Posta o código das entidades treinamento e versaoTreinamento pra eu ver como ficou…
Cara, tu ta usando o relacionamento bi-direcional. Nesse caso não precisa usar joinColumn nos dois lados. Deixa só na versao_treinamento e usa o mappedBy em treinamento.
Outra dúvida, tem algum motivo pra vc mapear os getters e não os atributos?
L
lgGodoy
Fiz esta alteracao mas nao funcionou, nao salva os ids na tabela, as anotacoes sao padrao dos sistemas aki, sempre utilizam anotacoes nos get’s, pq nao sei.