我希望通过Reservation
查询检索数据库中没有引用ReservationInstance
的{{1}}。 JPQL
实体拥有ReservationInstance
个实体。它是Reservation
单向的。
预订表
OneToOne
ReservationInstance表
ID NAME
0001 AAA
0002 BBB
0003 CCC
0004 DDD
如何检索没有ID SOME_COLUMN RESERVATION_ID
0001 somedata 0004
引用的Reservation
列表(对于AAA,BBB和CCC)?
我的实体
ReservationInstance
更新帖子
我使用了以下查询
public class Reservation implements Serializable {
.....
private String id;
.....
private String name;
//getter and setter
}
public class ReservationInstance implements Serializable {
....
private String id;
....
private Date fromTime;
....
private Date toTime;
@OneToOne
@JoinColumn(name = "RESERVATION_ID", referencedColumnName = "ID")
private Reservation reservation;
}
我得到了例外
SELECT r FROM Reservation r LEFT JOIN ReservationInstance ri WHERE ri.reservation IS NULL
答案 0 :(得分:3)
我的第一选择是建立双向关系。
只有在JPA 2.1中才支持LEFT JOIN ON,所以我建议这样:
SELECT r FROM Reservation r WHERE r IS NOT IN (SELECT ri.reservation FROM ReservationInstance ri)
不是100%确定这是有效的,如果没有尝试使用r.id IS NOT IN
某些查询返回ids。