JPA 是否会尝试级联持久化已持久化(非分离)的实体?
为了清楚起见,这是我的情况:我想保留一个新用户:
public void addUser(){
//User is an entity that is related to many Groups
//The relationship on User side is marked with cascade persist
User user = new User();
user.setName("foo");
user.setGroups(new ArrayList<Groups>());
//selectedGroups is an List of Groups previously created with persistent Groups
for(Group g : this.selectedGroups){
user.getGroups().add(this.groupDao.find(g.getId()));
}
//At this point, User.getGroups() is a list of Managed Entities
//What happens on the following line?
userDao.persist(user);
}
那么,会发生什么?JPA 会尝试(再次)保留 user.getGroups() 中的每个组吗?或者它会检测到这些组已经存在并且只是更新新的关系?
如果“是的,它将再次存在”,我应该如何注释这种关系以使该代码正常工作?