使用注释在JPA中,我可以使用where子句限制子记录吗?

时间:2011-05-02 13:48:04

标签: jpa

我的父类(Timeslot)中有一个像这样的@onetomany关系的EJB:

@OneToMany(mappedBy = "rsTimeslots")
private List<RsEvents> rsEventsList;

我还有一个获取rsEventList的函数:

public void setRsEventsList(List<RsEvents> rsEventsList) {
    this.rsEventsList = rsEventsList;
}

到目前为止,这是所有自动生成的。在我的视图层代码中,我可以获得一个时间段对象并执行类似timeslot.getRsEventList()的操作并获取此时隙的所有子项。现在我需要根据标准限制该列表。例如,我只希望事件是这个时间段的子节点,状态为1.有没有办法用注释做到这一点?

1 个答案:

答案 0 :(得分:1)

不在JPA。

通常,您将使用JPQL或条件API为此执行查询。

有些JPA提供程序提供了限制关系的方法,但我认为您最好使用查询,或者在类上提供get / filter方法,只访问列表并对其进行过滤(即getStatus1Events())。

对于有关映射标准的EclipseLink示例,请参阅 http://wiki.eclipse.org/EclipseLink/Examples/JPA/MappingSelectionCriteria