1

A別のクラスが含まれているクラスBがあります。このようなもの:

@Table(name = "A")
Class A {
    @OneToOne
    @JoinColumn(name="B_ID")
    B b;
} 

次のようなクエリが必要です。

SELECT * from A where B_ID = 4

しかし、Criteria私が目標を達成するために使用するとき、それは2つのテーブルを内部結合します。私が言ったようにどうすれば私は持つことができますかSELECT


それが助けになるなら、私はこのような私の基準を持っています:

DetachedCriteria crit = DetachedCriteria(A.class, "a");
crit.createAlias("a.b", "b");
crit.add(Restrictions.eq("b.id", 4));
getHibernateTemplate().findByCriteria(crit);
4

2 に答える 2

2

Hibernate では、デフォルトで 1 対 1 の関係が熱心にフェッチされます。これが、内部結合を取得する理由です。これを試して:

@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name="B_ID")
B b;
于 2013-03-12T14:53:42.647 に答える