2012-09-19 40 views
0

我有三个表。从@左侧加入没有参考@ManyToMany

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; 
} 

注意,无论是Left也不Right没有为LeftRight小号任何引用。

有没有用Criteria-API从Left中选择加入LeftRight

回答

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")); 
+0

上面的代码使用Hibernate API,它不是JPA标准API。你可以展示如何使用JPA Criteria API进行上述操作? – Marco