hibernate - HQL加入许多子句 [英] hibernate - HQL joins on many clauses
本文介绍了hibernate - HQL加入许多子句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我一直在阅读Hibernate文档,但是我还没有找到任何解释如何执行以下操作的内容。
我有以下SQL代码'm试图转换为HQL:
SELECT {msg。*},{cmd。*}
FROM架构。消息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;
我遇到的主要问题是我无法在LQL OUTER JOIN。HQL允许我有
ON cmd.message_key = msg.unique_key
,但是如何将
AND子句2?
解决方案
c $ c> with 关键字,像这样(取决于你的映射):
SELECT m ,c
FROM消息m LEFT JOIN m.commands c WITH(lower(c.status)='failed')
WHERE m.sequenceReceived< 10
16.3。关联和连接 >
I've been reading Hibernate documentation, but I haven't found anything that would explain how to do the following.
I have the following 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 theAND 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:
这篇关于hibernate - HQL加入许多子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文