java - 在 @OneToMany JPA 集合中使用 Where 子句
问题描述
我正在尝试使用此处建议的第一个解决方案来实现历史记录。
在我的项目中,我们有路线、站点、孩子以及每个孩子何时到达站点的记录。
更新停止时间后,我希望记录仍与该停止相关,但使用该停止在创建时的时间。
到目前为止,我遇到的唯一问题是使用 Hibernate 时,在获取路线的停靠点时,我想忽略标记为历史的停靠点。
我可以在路由中配置 @OneToMany 集合以仅使用 where 子句获取停靠点吗?
解决方案
不,@OneToMany
只是表示在底层被翻译成外键等的静态实体关系,以及一些关于急切/延迟检索、更新/删除级联的提示。
您需要为您的案例创建一个@NamedQuery
包含where
子句的内容。它使用 JPQL,因此您仍将与您的对象模型进行交互。
由于您正在使用spring-data
,您还可以使用存储库方法,假设您有一个RouteRepository
or StopRepository
,您可以在其中获得非历史性Stop
的Route
.
您没有包含任何代码示例,因此我无法提供更多详细信息。
推荐阅读
- javascript - 如何在 react-native webview 上监听 webapp 内触发的点击事件
- r - 修改R中光栅图像的颜色范围
- javascript - 如何在ajax url中发送很长的数据?
- php - 为什么 unlink() 不能与 .htaccess 文件一起使用?
- angular - Angular FullCalendar 事件未正确呈现
- angular - 从对象数组中获取索引并将其添加为新属性
- flutter - 单屏卡片和ListView
- c - gcc 不创建二进制文件
- python - 如何在django中检查生日是否是明天?
- c# - 在c#中通过动态过滤查询过滤复杂的JSON