[英]JPA - Join two entities with a condition
我有 2 个实体 A 和 B,我想在 2 个条件下加入:
SELECT * FROM A JOIN B ON A.A_ID = B.A_ID AND SYSDATE BETWEEN B.START_DATE AND B.END_DATE
Class A {
@Id
@Column(name = "A_ID")
String aId;
@Column(name = "A_NAME")
String aName;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "aId", nullable = false, insertable = false, updatable = false) // Add SYSDATE condition here
Set<B> B bObjects;
}
Class B {
@Column(name = "A_ID")
String aId;
@Column(name = "B_ID")
String bId;
@Column(name = "B_NAME")
String bName;
@Column(name = "START_DATE")
LocalDate startDate;
@Column(name = "END_DATE")
LocalDate endDate;
}
不确定如何在@JoinColumn
注释中添加 SYSDATE BETWEEN B.START_DATE AND B.END_DATE 条件?
据我所知,你不能通过简单的注释来做到这一点。
尽管如此,在您的 JPA 查询中,您可以使用 ON 子句,如果您使用 JPA 2.1。 你有一个例子: 如何使 CriteriaBuilder 加入一个自定义的“on”条件?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.