我有三张桌子。
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都没有对LeftRights的任何引用。
在加入LeftRight时,有没有使用Criteria-API从Left中进行选择的方法?
发布于 2012-09-19 18:48:46
您可以为LeftRight创建一个条件查询,并使用projection检索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-19 21:48:59
可以,只需使用选择。
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
https://stackoverflow.com/questions/12487329
复制相似问题