【发布时间】:2016-01-15 03:48:21
【问题描述】:
我使用带有休眠实现的 spring-data-jpa。
我有一份包含租金清单的保释金。
@OneToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY, mappedBy = "bail")
private List<Rent> rents;
一个租金可以有很多付款。
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "rent")
@OrderBy
private List<RoomPayment> roomPaymentList;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "bail_id")
private Bail bail;
所以我尝试获得未付款或未付款的租金
select r from Rent r Join r.bail.lodger l where r.unpaidBalance > 0 or r.roomPaymentList is null order by r.rentId
Hibernate 将此查询转换为
select
rent0_.rent_id as rent_id1_33_,
rent0_.bail_id as bail_id5_33_,
rent0_.from_date as from_dat2_33_,
rent0_.to_date as to_date3_33_,
rent0_.unpaid_balance as unpaid_b4_33_
from
rent rent0_
inner join
bail bail1_
on rent0_.bail_id=bail1_.bail_id
inner join
lodger lodger2_
on bail1_.lodger_id=lodger2_.lodger_id cross
join
room_payment roompaymen3_
where
rent0_.rent_id=roompaymen3_.rent_id
and (
rent0_.unpaid_balance>0
or . is null
)
order by
rent0_.rent_id
或为空...那里缺少某些东西
【问题讨论】:
-
就像我写的那样,我使用 spring-data-jpa 和休眠实现
标签: hibernate jpa spring-data-jpa jpql