0

私は3つのテーブルを持っています。

LEFT ---------|<- LEFT_RIGHT ->|--------- RIGHT
@Entity
class Left {
    // no collection mapping for LeftRight
}

@Entity
class Right {
    // no collection mapping for LeftRight
}

@Entity
class LeftRight {

    @JoinColumn(name="LEFT_ID")
    @ManyToOne
    private Left left;

    @JoinColumn(name="RIGHT_ID")
    @ManyToOne
    private Right right;
}

sの参照も、参照Leftもないことに注意してください。RightLeftRight

Criteria-APIを使用してLeft、参加中に選択する方法はありますLeftRightか?

4

2 に答える 2

1

基準クエリを作成し、LeftRightプロジェクションを使用してleftプロパティを取得できます。

session.createCriteria(LeftRight.class)
    // Add whatever restrictions on Left properties
    .createCriteria("left")
    .add(Restrictions.like("name", "%something%"))
    // Use projection to retrieve the left property
    .setProjection(Projections.property("left"));
于 2012-09-19T10:48:46.227 に答える
0

はい、選択を使用してください。

CriteriaQuery cq = cb.createQuery();
Root r = cq.from(LeftRight.class);
cq.select(r.get("left"));
cq.where(...);
Query query = em.createQuery(cq);

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Criteria#CriteriaQuery

于 2012-09-19T13:48:58.850 に答える