实现简单更新的标准方法是什么?
示例:我们有电话号码为 NNNNNN 的用户,现在我们要将其设置为 YYYYYY。
@PersistenceContext
private EntityManager em;
public void update (User transientUser) {
what should be here?
}
用户实体尽可能简单:
@Entity
@Table (name = "USER")
public class User {
@Id
@GeneratedValue
private Integer id;
@Column (nullable = false, unique = true)
private String login;
private String phone;
public User () { }
... //some setters and getters
}
最佳答案
根据 JPA 规范,EntityManager#merge()
将返回对 another 对象的引用,而不是在对象已经加载到当前上下文中时传入的引用.所以,我宁愿返回 merge()
的结果并像这样编写 update()
方法:
@PersistenceContext
private EntityManager em;
public User update (User transientUser) {
return em.merge(transientUser);
}
然后,像这样使用它(跳过初始化部分):
user.setPhone("YYYYYY");
user = dao.update(user);
关于java - 如何使用 EntityManager (JPA) 在 DAO 中实现 update() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1809159/