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 に答える