Salve a tutti,
ho 2 tabelle in relazione uno a molti. Faccio la create della entità padre dove ho settato dentro anche una istanza del figlio. Mi popola normalmente il db infatti se faccio una ricerca tramite Named Query mi trova l'entità che ho inserito correttamente. Poi faccio la remove del figlio. Sul db la delete è stata eseguita ma se faccio una ricerca della entità padre, vedo ancora il figlio come se non fosse stato cancellato. Non capisco perchè.... dove è il trucco ? Per caso devo fare sempre refresh di tutte le entità tutte le volte che vengono selezionate?

se può rispondermi le sarò grato
grazie
Francesco

p.s.: segue un esempio con 3 entità in relazione uno a molti in cascata

public void esegui(ActionEvent evento) {

//creo dettaglio utente
UserDetail userDetail = new UserDetail(500, "userDetail", "a", "a", "a", "a", "a", new Date());
List userDetailList = new ArrayList();
userDetailList.add(userDetail);

//creo utente e setto dentro anche dettaglio
User user = new User(250, "user", new Date());
user.setUserDetailList(userDetailList);
List userList = new ArrayList();
userList.add(user);

//creo ruolo e setto dentro anche utente
Role role = new Role(100, "role");
role.setUserList(userList);

//setto le relazioni bidirezionali
user.setIdRole(role);
userDetail.setIdUser(user);

//inserisco l'entità ruolo con tutti i suoi dettagli
roleModel.create(role);

//Seleziono e trovo il ruolo con i relativi dettagli appena inseriti
roleList = roleModel.findAllRole();

for (Role r : roleList) {
System.out.println("Role " + r.getId());
for (User u : r.getUserList()) {
System.out.println("User " + u.getId());
for (UserDetail ud : u.getUserDetailList()) {
System.out.println("UserDetail " + ud.getId());
}
}
}

//Elimino l'utente ( dettaglio del ruolo )
roleModel.removeUser(user);

//Seleziono e trovo il ruolo con i relativi dettagli appena cancellati ?
roleList = roleModel.findAllRole();

for (Role r : roleList) {
System.out.println("Role " + r.getId());
for (User u : r.getUserList()) {
System.out.println("User " + u.getId());
for (UserDetail ud : u.getUserDetailList()) {
System.out.println("UserDetail " + ud.getId());
}
}
}

}


output:

INFO: Role 100
INFO: User 250
INFO: UserDetail 500
INFO: Role 100
INFO: User 250 ma non dovrebbe essere stato cancellato?
INFO: UserDetail 500 ma non dovrebbe essere stato cancellato?