繁体   English   中英

在Hibernate中从一对多关系中选择一个对象

[英]Selecting one object from a one-to-many relationship in Hibernate

我有两个表:

Job
job_id, <other data>

Job_Link
job_link_id, job_id, start_timestamp, end_timestamp, <other data>

Job_Link中可能有多个记录,它们使用start_timestamp和end_timestamps指定相同的job_id,以指示这些记录何时被视为“当前”,因此可以确保start_timestamp和end_timestamp不会重叠。

我们有Job和Job_Link表的实体,并且定义一对多关系来加载所有job_links不会有问题。 但是,我们希望避免这种情况,并在Job实体中只有一个job_link项目,该项目仅包含“当前” Job_Link对象。

有没有办法做到这一点?

使用@WhereJoinTable批注是可能的。 在Job实体中,添加与您在JobLink对象上定义@OneToMany完全相同的@OneToOne链接。

@OneToOne(...)
@WhereJoinTable(clause = "now() between start_timestamp and end_timestamp") // mysql
@WhereJoinTable(clause = "sysdate between start_timestamp and end_timestamp") // oracle ...
private JobLink jobLink

缺点:破坏了数据库和JPA提供程序的可移植性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM