在JPA中使用注释我可以用where子句限制子记录吗?
我的父类(时隙)中有一个具有@onetomany关系的EJB:在JPA中使用注释我可以用where子句限制子记录吗?,jpa,Jpa,我的父类(时隙)中有一个具有@onetomany关系的EJB: @OneToMany(mappedBy=“rsTimeslots”) 私有列表rsEventsList; 我还有一个获取rsEventList的函数: public void setRsEventsList(List<RsEvents> rsEventsList) { this.rsEventsList = rsEventsList; } public void setRsEventsList(列表rsEve
@OneToMany(mappedBy=“rsTimeslots”)
私有列表rsEventsList;
我还有一个获取rsEventList的函数:
public void setRsEventsList(List<RsEvents> rsEventsList) {
this.rsEventsList = rsEventsList;
}
public void setRsEventsList(列表rsEventsList){
this.rsEventsList=rsEventsList;
}
到目前为止,这些都是自动生成的。在我的视图层代码中,我可以获取一个时隙对象,执行类似于timeslot.getRsEventList()的操作,并获取该时隙的所有子项。现在我需要根据一个标准来限制这个列表。例如,我只希望事件是此时间段的子事件,状态为1。有没有一种方法可以通过注释实现这一点 不在JPA中
通常,您将使用JPQL或CriteriaAPI为此执行查询
一些JPA提供程序确实提供了限制关系的方法,但我认为最好使用查询,或者在类上提供一个get/filter方法,只访问列表并对其进行过滤(即getStatus1Events())
有关在映射上具有标准的EclipseLink示例,请参见,
Arg。我很害怕。谢谢你的快速回复!在实体bean中,我可以修改get来删除对象吗?这是件坏事吗<代码>公共列表getRsEventsList(){//删除没有状态的任何事件=1 List eventslist=new ArrayList();for(RsEvents事件:rsEventsList){如果(event.getStatus()=(long)1){eventList.add(event);}返回eventList;}
接受的答案是从2011年5月开始的。2014年8月的JPA 2.1是否仍然如此?如果有人对此帖子有更新的答案,请发布。谢谢
public void setRsEventsList(List<RsEvents> rsEventsList) {
this.rsEventsList = rsEventsList;
}