你能帮我加入这些桌子吗?我的JPQL查询无法正常工作
@Query("Select bp, p from Perks as p, BokPerks as bp where bp.bookingID =:bookingID and bp.payment_id = p.id")
List<Payment> getTEST(@Param("bookingId")long bookingID);
一个小时已经解决不了,也许是一个简单的错误,但我已经阻止了一点:) BokPerks实体表:
'131', NULL, '2'
'131', NULL, '3'
'132', NULL, '1'
'132', NULL, '2'
'132', NULL, '3'
'15', '1', '4'
'33', '2', '1'
'33', '2', '2'
'33', '2', '3'
'38', '3', '4'
特权表:
'1', 'lorem ipsum'
'2', '1234'
'3', 'hello '
'4', 'examples'
答案 0 :(得分:3)
您的查询没有JOIN。应该是这样的
@Query("Select bp, p from Perks as p INNER JOIN p.BokPerks as bp where tbp.bookingID =:bookingID and tbp.payment_id = p.id")
我写了INNER JOIN p.BokPerks
但实际上应该引用属性名称。没有实体类
假设BokPerks
具有perk
引用属性。那么查询应该是
from BokPerks as bp INNER JOIN bp.perk as p
答案 1 :(得分:1)
您可以在查询中看到您使用的是未知的tbp
别名:
@Query("Select bp, p from Perks as p, BokPerks as bp where tbp.bookingID =:bookingID and tbp.payment_id = p.id")
你写了Select bp, p from Perks as p
然后你写了where tbp.bookingID =:bookingID and tbp.payment_id = p.id
将其更改为:
@Query("Select bp, p from Perks as p, BokPerks as bp where bp.bookingID =:bookingID and bp.payment_id = p.id")