2016-11-10 205 views
2

我是一个Hibernate新手,我有这个下面的查询。它按我的预期工作。这两个表格没有关联。有没有一种方法可以通过使用Criteria API获得相同的结果,或者我如何通过Hibernate运行这个查询?任何帮助,将不胜感激。休眠条件:休眠左连接没有关联

SELECT p.title, c.content 
    FROM posts p 
    LEFT JOIN comments c ON p.id = c.post_id 
    WHERE p.status = 'A' AND (p.title iLIKE '%r%' OR c.content iLIKE '%r%'); 

回答

0

标准API需要实体之间的path,所以我不知道这个连接可以使用标准的API来完成。更好地HQL做,如果你有休眠> = 5.1:

select p.title, c.content 
from org.example.Posts p 
left outer join org.example.Comments c 
on p.id = c.id 
where p.status = 'A' AND (lower(p.title) LIKE '%r%' OR lower(c.content) LIKE '%r%'); 

不过,你可以坚持使用SQL查询与Hibernate或者更好的是,创建文章和评论之间的关联。

+0

由于我是一个新手,遇到问题执行。你能否提供一个左连接的例子? – Tartar

+0

我添加了一个例子。 2注意:它需要最新的休眠和HQL不支持不区分大小写的运算符ilike,所以必须明确小写 – borowis

+0

我没有最新版本,我必须用Criteria API来完成。我知道这是没有意义的,因为实体之间没有路径,但我没有设计数据库和实体。 – Tartar