[英]how to create inner query using criteria in hibernate?
我有一个查询,如:
SELECT *
FROM mars_india.leave_x_user
WHERE user_id in (SELECT user_id FROM mars_india.user where vendor_id=16);
我从stackoverflow获得了以下解决方案,但无法理解:
criteria =criteria.createCriteria(user.USER_DOMAINS)
.add(Restrictions.eq(UserDomain.DOMAIN, domain));
好吧...首先,您需要了解不必使用子查询来获取相同的信息。
试试这个查询:
SELECT lxu.* FROM mars_india.leave_x_user lxu
LEFT JOIN mars_india.user miu
ON lxu.user_id = miu.user_id
WHERE miu.vendor_id=16
它应产生与查询相同的结果。
JOIN语句是魔术。 简而言之:它使两个表的行为像一个表。 因此,现在您可以使用vendor_id来查询此联接表,并仅返回联接表的一部分,该结果将记录到“ leave_x_user”表中。
看到,您只需要一个具有一个限制的查询就可以获取相同的数据。
使用此条件查询基本上就是您要做的。
为了学习标准查询的语法,请在此处查看: https : //docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html
如果您需要更多具体信息,请发布您的域模型(映射到表的类)。
编码愉快! :D
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.