我想在hibernate中运行以下SQL:
SELECT c.id, c.name, ipc.total
FROM Category c,
(
SELECT comm.category.id as id, count(*) as total
FROM Commerce as comm
GROUP BY comm.category.id
) ipc
WHERE c.id = ipc.id
这是我试图用JQL编写的,但是我得到了一个错误。它似乎不喜欢我针对查询结果的连接。
请求处理失败;嵌套的异常是java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySynahException:意外令牌:(第1行附近,第86列[SELECTc.id,c.name,ipc.total来自com.brujulasolutions.directorio.model.类别c,(SELECTcomm.category.idid, count(*)as总计fromcom.brujulasolutions.directorio.model.Commerce as comm GROUP BYcomm.category.id)ipc WHEREc.id=ipc.id]
SELECT c.id, c.name, ipc.total
FROM Category c,
(
SELECT comm.category.id as id, count(*) as total
FROM Commerce as comm
GROUP BY comm.category.id
) ipc
WHERE c.id = ipc.id
Hibernate查询语言不直接支持这种类型的更新连接。相反,我们可以在select子句中使用相关子查询:
SELECT c.id, c.name,
(SELECT COUNT(*)
FROM Commerce AS comm
WHERE comm.category.id = c.id) AS total
FROM Category c
我的桌子描述是 我的疑问是 如何使用hibernate执行此查询。Hibernate应该返回类型为的对象列表。?
问题内容: 如果我的查询包含一个类,例如: 然后我迭代它,那里是一个类的对象。 那么如何从包含多个类的查询中获取结果呢?例如: 问题答案: for (Object[] result : query.list()) { User user = (User) result[0]; Group group = (Group) result[1]; }
问题内容: 我应该将“如果查询结果行IS = 1进行验证的代码”替换为什么? 我已经尝试过使用num_rows的多种方法,但无法正常工作。 我的PHP代码: 问题答案: 要么
在程序中有一部分代码,用于执行查询: 数据集 () 表应该有大约 20000 条记录(行计数),但在程序内部,它在调试模式下说只有 20 条记录。 我在同一个数据库表上单独运行了脚本,该表在 SQL Server 连接字符串中使用,但在 SQL Server Management Studio 中,它按预期返回了 20000 条记录。 该脚本看起来像: 它是相同的脚本文本,代码也会执行该文本。 有
问题内容: 我使用MSSQL和ADO运行各种SQL语句。 代码序列如下所示: 如果SQL返回结果为空,则最后一条语句将失败。如何检查这种情况以避免运行时错误? 注意:SQL语句来自用户在其中键入SQL的备忘录。 问题答案: 如果您的查询返回记录集(报表),你应该 不 使用,而只是或。 对于不返回记录集例如查询/ / ,使用。在大多数情况下,您会通过查询返回。 其他SQL语句,你应该使用是/ / /
问题内容: 考虑表 这是使用查询生成的视图 我想为总销售额创建一个实体,但没有sql端的视图。 该实体将通过查询构造。我发现的最接近的东西是 this ,但是我无法使其工作。 即使我定义了加载器,hibernate也会查找实体表并在找不到时给出错误。如果我创建表,它不会从我定义的命名查询中加载实体,Hibernate会生成查询本身。 有没有一种方法可以使@Loader工作,或者有另一种我可以将查询