0

在下面的代码中,每次我需要在持久化 Emp 时通过传入来获取对象Dept,我不想去数据库。我希望像 JDBC 一样只传递 id 而不是对象。每次从数据库影响性能。我怎么做?deptIdcreateUser()

public class Emp {
  Integer eid;
  String ename;
  long sal;
  Dept dept;    

  public void createUser(Integer eid,String ename,long sal,Integer deptId) {
    Dept dept = em.find(Dept.class,deptId);
    Emp emp = new Emp();
    emp.setEid(101);
    emp.setEname("Smith");
    emp.setSal(100000);
    emp.setDept(dept);    // here Dept object required 
    em.persist(emp);
  }

}

public class Dept {
  Integer deptid;
  String deptname;
}
4

2 回答 2

2

阅读EntityManager 的 API 文档...

  • getReference() - 如果您只需要它作为参考(根据文档可能会延迟获取实例)
  • find() - 如果你也想使用它的属性
于 2012-10-11T09:14:15.167 回答
1

我认为em.getReference()适合这些需求

于 2012-10-11T08:39:26.263 回答