JPQL 无法连接表

JPQL cannot join tables

你能帮我加入这些 tables 人吗?我的 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);

一个小时都解决不了,可能是一个简单的错误,但我已经屏蔽了一点:) Table 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'

津贴table:

'1', 'lorem ipsum'
'2', '1234'
'3', 'hello '
'4', 'examples'

您的查询没有 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,但实际上应该引用了属性的名称。没有你的实体就无法说出确切的语法 类

假设 BokPerksperk 个引用 属性。那么查询应该是

from  BokPerks as bp INNER JOIN bp.perk as p

好吧,您可以简单地看到您在查询中使用了一个未知的 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")