1

そのようなエンティティを考えてみましょう

public class SomeEntity {
    @ManyToOne
    @JoinColumn(name = "company_fk")
    private CompanyEntity company;
}

company_fk 列は整数です。私のアプリケーションでは、company_fk 整数を持っているが、必ずしも CompanyEntity を持っているとは限らないという状況に陥ることがよくあります。

私がやりたいのは、SomeEntity の新しいインスタンスを作成し、それを CompanyEntity に関連付けて、関係を確立できるようにデータベースから CompanyEntity を読み取る必要があることです。必要がないのにデータベースに行くので、これはあまり良くありません。

関係を確立するためだけにエンティティをロードする必要を回避する方法はありますか? 私はHibernateでJPA 2を使用しています。方法があれば、これを機能させるためにhibernateのみのマッピングを使用することにオープンです。

4

1 に答える 1

2

それがまさにem.getReference()存在する理由です。指定された ID を持つエンティティが存在すると想定し、このエンティティにプロキシを返します。

// get a reference to the company without going to the DB:
CompanyEntity company = em.getReference(CompanyEntity.class, companyId);
SomeEntity e = new SomeEntity();
e.setCompany(company);

Hibernate のネイティブ Session クラスには、呼び出されることを除いて同じメソッドがありload()ます。

于 2012-08-01T12:54:13.743 に答える