日期:2014-05-20  浏览次数:20910 次

EntityManager类中的merge方法怎么用
比如现在数据库表有三个字段 id , name , pass 
  id 是主键 我只想修改 pass 
  是要 set 每一个这张表里的字段 还是只用set pass这一个字段呢 

  比如

  有一个实体类
  @Entity
  @Table(name = "table", catalog = "datebase")
  public class User {
  private int id;
  private String name;
  private String pass;

  @Id
  @Column(name = "id", unique = true, nullable = false, length = 30)
  public int getId() {
  return this.id
  }
  public void setId(int id) {
  this.id = id;
  }
  ......
  }


  然后在EJB中要修改这张表 

  @PersistenceContext
  private EntityManager entityManager;

  int id = 123456;
  User user = entityManager.find(User.class, id);
  user.setId(id);
  user.setName("name");
  user.setPass("pass");

  entityManager.merge(user);

  还是只需要 user.setPass("pass"); 就可以了

------解决方案--------------------
session.update 的时候 直接保存就可以了 不知道你的entityManager.merge是怎么封装的