开发者

hibernate - HQL joins on many clauses

I've been reading Hibernate documentation, but I haven't found anything that would explain how to do the following.

I have the f开发者_运维百科ollowing SQL code that I'm trying to convert to HQL:

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";

The mainissue I'm having is that I'm unable to have two clauses on a LEFT OUTER JOIN. HQL allows me to have ON cmd.message_key = msg.unique_key , but how do I add the AND clause 2?


You can add extra join conditions using with keyword, something like this (depends on your mapping):

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

See also:

  • 16.3. Associations and joins
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜