Situação real:
Tenho umA qa entidade ue tem 3 entidades b e gostaria de atualizar a A removendo um B (somente esta atualização).
Estou fazendo o seguinte retiro o B da lista de A (a.getBs().remove(0) //neste caso removi o primeiro elemente da lista) e faço um MERGE, porém o B não está sendo excluído do banco.
Já fiz algumas buscas pelo google e não obtive muito sucesso.
Gostaria de saber se alguém aqui já passou por isso ou sabe alguma solução.
Situação real:
Tenho umA qa entidade ue tem 3 entidades b e gostaria de atualizar a A removendo um B (somente esta atualização).
Estou fazendo o seguinte retiro o B da lista de A (a.getBs().remove(0) //neste caso removi o primeiro elemente da lista) e faço um MERGE, porém o B não está sendo excluído do banco.
Já fiz algumas buscas pelo google e não obtive muito sucesso.
Gostaria de saber se alguém aqui já passou por isso ou sabe alguma solução.
Entidade entidade = a.getBs().item(0); // hipotético, só pra entender que é a recuperação do item da coleção.
em.remove(entidade); em.merge(a);
Att.
Edson.
fontoura
edson.goncalez:
Pq vc nao remove usando o EntityManager direto ?
Entidade entidade = a.getBs().item(0); // hipotético, só pra entender que é a recuperação do item da coleção.
em.remove(entidade); em.merge(a);
Att.
Edson.
É justamente esse trabalho que estava querendo evitar… Eu achei que o JPA (Hibernate) entenderia de alguma forma que quando eu desse um merge em “a” sem alguns filhos, os filhos que não estivessem na lista seriam excluidos!
Na verdade o método que irá atualizar já recebe “a” sem os elementos da lista de B.
O que estou fazendo é consultando denovo e removendo os Bs que não estão na lista de A.
Obrigado a todos
Lavieri
tente comitar =P
pq o que vc falou funciona sim
A a = em.find(A.class,1);
a.getBs().remove(0);
em.getTransaction().begin();
em.marge(a);
em.getTransaction().commit();
em.fulsh();
fontoura
Lavieri:
tente comitar =P
pq o que vc falou funciona sim
A a = em.find(A.class,1);
a.getBs().remove(0);
em.getTransaction().begin();
em.marge(a);
em.getTransaction().commit();
em.fulsh();
Desculpe a pergunta desconfiada, mas vc já conseguiu testar isso ou fazer funcionar?
Estou perguntando isso, pq tbm já ouvi falar que isso funciona, mas não está funcionando na minha aplicaçao!!!
Obrigado!!!
Lavieri
sim ja fiz
sim funciona
sim consegui sim
posta suas entidades ai =P ... pode ser algum misterio nelas =x
Edit.: eu particularmente não gosto disso, mas ja usei antes, acho muito esposto... eu não gosto de deixar minha list exposta no getBs() então faço + ou - assim