[英]Use Where Clause in @OneToMany JPA Collection
我正在尝试使用此处建议的第一个解决方案来实现历史记录。
在我的项目中,我们有路线,站点,孩子以及每个孩子何时到达站点的记录。
更新停止时间后,我希望记录仍与该停止有关,但要使用该停止在创建时所花费的时间。
到目前为止,我唯一的问题是使用Hibernate,即在获取路线的站点时,我想忽略标记为历史的站点。
我可以在路由中配置@OneToMany集合以使用where子句仅获取停止吗?
不, @OneToMany
仅表示引擎盖下的静态实体关系已转换为外键等,以及一些有关急切/延迟检索,级联更新/删除的提示。
对于您的情况,您需要创建一个带有where
子句的@NamedQuery
。 它使用JPQL,因此您仍将与对象模型进行交互。
由于您使用的是spring-data
,因此还可以使用存储库方法,假设您具有RouteRepository
或StopRepository
,则可以在其中获取Route
的非历史Stop
。
您尚未包含任何代码示例,因此我无法提供更多细节。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.