我一直在寻找谷歌一段时间而没有找到答案。
我有两张桌子:一张是我的,另一张是共享的。映射到实体,我有这个非常通用的情况:
Entity1 {
@Id Long id;
Long otherId;
Entity2 other;
...
}
Entity2 {
@Id Long id;
Long otherId;
Date invalidatingDate;
...
}
那两个otherId是相同的并且应该加入但是由于字段invalidatingDate我得到一个应该是OneToOne的OneToMany关系。有没有办法用INVALIDATING_DATE IS NULL来弥补这种关系?进入Entity2,给定一个otherId,WHERE INVALIDATING_DATE IS NULL将始终给出单个结果。 这样的事情有可能吗?
谢谢。
答案 0 :(得分:1)
由于您正在使用休眠,因此您可以执行以下操作(我不确定您的问题与OneToOne
或ManyToOne
之间的关系是什么,但请注意@Where
anootation):
Entity1 {
@Id Long id;
Long otherId;
@ManyToOne/@OneToOne
@Where(clause = "invalidatingDate = NULL")
Entity2 other;
...
}