【发布时间】:2014-08-22 18:16:04
【问题描述】:
我有一个关于休眠中对象的持久性的问题。
上下文是我有一个具有多个角色的用户:
@Entity
@Table(name="users")
public class User implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="user_id")
private Long idUser;
@OneToMany
@JoinColumn(name="user_id")
private Collection<Role> roles;
}
我想在 DaoImpl 中为用户添加另一个角色
public class ShopDaoImpl implements ShopDAO{
@PersistenceContext
private EntityManager em;
@Override
public void attribuerRole(Role r, Long userID) {
User u = em.find(User.class, userID);
u.getRoles().add(r);
em.persist(r);
}
}
我想了解为什么我只需要保存角色 r(使用persist),而我不需要更新用户,例如(em.merge(u));虽然我已经修改了用户(在其 Collection 角色中添加了一个角色;)
【问题讨论】:
标签: hibernate