【发布时间】:2018-10-31 01:32:55
【问题描述】:
我有来自 SQL 的查询:
select e.*
from terminal_remote_deployment e
where id = (select top 1 e1.id
from terminal_remote_deployment e1
where e1.Terminal_info_id = e.Terminal_info_id
order by e1.version desc
);
我正在尝试像这样用 HQL 编写它:
final StringBuilder hql = new StringBuilder();
hql.append(" from TerminalRemoteDeployment e");
hql.append(" where e.id = (Select TOP 1 e1.id from TerminalRemoteDeployment e1 where e1.terminalInfo.id = e.terminalInfo.id order by e1.version desc)");
Query query = getEntityManager().createQuery(hql.toString());
resultList = (List<TerminalRemoteDeployment>) query.getResultList();
我在使用这种方法时遇到了错误。请帮我在hibernate中编写标准,因为我对此很陌生。
【问题讨论】:
-
您不能使用
TOP,因为这是 SQL Server 独有的,而 HQL 不支持。唯一的方法是创建一个独占的Query并使用setMaxResults方法。
标签: sql-server hibernate subquery hql hibernate-criteria