我正在尝试使用建议的第一个解决方案 here 来实现历史记录。
在我的项目中,我们有路线、站点、 child 以及每个 child 到达站点的时间记录。
更新停止时间后,我希望记录仍与该停止相关,但使用创建时停止的时间。
到目前为止,我遇到的唯一问题是,使用 Hibernate 时,在获取路线的停靠点时,我想忽略标记为历史的停靠点。
我可以在 route 配置@OneToMany集合以仅使用where子句获取停靠点吗?
最佳答案
不,@OneToMany
仅指示底层的静态实体关系被转换为外键等,以及一些有关急切/惰性检索、级联更新/删除的提示。
针对您的情况,您需要创建一个带有 where
子句的 @NamedQuery
。它使用 JPQL,因此您仍将与对象模型进行交互。
由于您使用的是spring-data
,您还可以使用存储库方法,假设您有一个RouteRepository
或StopRepository
,您可以在其中获得您的路线
的非历史性停靠点
。
您尚未包含任何代码示例,因此我无法提供更多详细信息。
关于java - 在@OneToMany JPA集合中使用Where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52739521/