Rom*_*man 20 java jpa entitymanager
实现简单更新的标准方法是什么?
示例:我们的用户电话号码为NNNNNN,现在我们要将其设置为YYYYYY.
@PersistenceContext
private EntityManager em;
public void update (User transientUser) {
what should be here?
}
Run Code Online (Sandbox Code Playgroud)
用户实体尽可能简单:
@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
}
Run Code Online (Sandbox Code Playgroud)
Pas*_*ent 50
根据JPA规范,EntityManager#merge()将返回对另一个对象的引用,而不是在当前上下文中已经加载对象时传入的对象.所以,我宁愿返回结果,merge()并写下这样的update()方法:
@PersistenceContext
private EntityManager em;
public User update (User transientUser) {
return em.merge(transientUser);
}
Run Code Online (Sandbox Code Playgroud)
然后,像这样使用它(跳过初始化部分):
user.setPhone("YYYYYY");
user = dao.update(user);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71802 次 |
| 最近记录: |