Hibernate用于获取subselect的原始整数列表

时间:2009-05-18 17:35:52

标签: java hibernate subquery

Hibernate是否有办法从表中的一列返回(原始)值列表?我需要这个子选择,其中我只想要一个特定字段不在另一个表的ID列表中的行。

3 个答案:

答案 0 :(得分:3)

你能使用Hibernate原始SQLQuery吗?

SQLQuery q = getSession().createSQLQuery("select int_column from table");
List<Integer> list = (List<Integer>) q.list();

答案 1 :(得分:2)

好吧,它变得像以下一样简单,来自URL https://www.hibernate.org/hib_docs/nhibernate/html/queryhql.html,这实际上是我在谷歌搜索时发现的第一个结果之一,但我担心它可能是NHibernate特定的

from Eg.DomesticCat as cat where cat.Name not in ( 
select name.NickName from Eg.Name as name )

答案 2 :(得分:0)

不知道如何使用hibernate引擎本身,我认为这取决于你如何映射你的模型对象,没有看到映射,你可以通过hibernate会话对象并使用标准SQL;

session.createSQLQuery("select idCol from someTable where someId not in (
select someId from anotherTable)");

然后对查询使用list()方法,并对原始int数组使用自动装箱。