0

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

4

3 回答 3

3

您可以使用 Hibernate 原始 SQLQuery 吗?

SQLQuery q = getSession().createSQLQuery("select int_column from table");
List<Integer> list = (List<Integer>) q.list();
于 2009-05-18T18:11:48.827 回答
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 )
于 2009-05-18T18:15:56.103 回答
0

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

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

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

于 2009-05-18T18:12:16.593 回答