hibernate - HQL加入了许多子句

ili*_*den 9 sql hibernate hql left-join

我一直在阅读Hibernate文档,但我没有找到任何可以解释如何执行以下操作的内容.

我有以下我想要转换为HQL的SQL代码:

SELECT {msg.*}, {cmd.*} 
FROM Schema.Messages AS msg 
  LEFT OUTER JOIN schema.send_commands AS cmd 
    ON cmd.message_key = msg.unique_key 
    AND ( lower(cmd.status) IN (lower('failed') ) ) 
WHERE msg.sequence_received < 10";
Run Code Online (Sandbox Code Playgroud)

我遇到的主要问题是我在LEFT OUTER JOIN上没有两个条款.HQL允许我拥有 ON cmd.message_key = msg.unique_key ,但我如何添加 AND clause 2?

axt*_*avt 20

您可以使用with关键字添加额外的连接条件,类似这样(取决于您的映射):

SELECT m, c 
FROM Message m LEFT JOIN m.commands c WITH (lower(c.status) = 'failed')
WHERE m.sequenceReceived < 10
Run Code Online (Sandbox Code Playgroud)

也可以看看: