【发布时间】:2012-07-18 15:09:06
【问题描述】:
我是 Hibernate 的新手,我尝试持久化一个包含集合的实体。
我的类 User 包含一个 Set 属性。
class User{
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "user_id", referencedColumnName = "id")
@Valid
@Nullable
public Set<Permission> getPermissions()
{
return permissions;
}
}
当我使用新的权限集更新用户并尝试保存时,权限会再次重置为原始值,所有其他值都会更新,只有未更新的权限。
@Transactional(readOnly = false)
@Override
public User update(User user)
entityManager.merge(user);
entityManager.flush();
entityManager.refresh(user);
return user;
我已经阅读了有关传递持久性和分离对象的信息,但我仍然无法使用它。
任何想法我做错了什么?
【问题讨论】:
标签: java hibernate collections merge