我有一个表ROOT和一个包含与ROOT相关行的表子级。
我想为根的每一行检索一个对象,该对象包含根对象以及与CHILDREN表中的ROOT.id相关的行数。
这可以很容易地在SQL中实现,但我想知道如何在JPQL中编写
在SQL中:
SELECT r.*, (SELECT COUNT(c.i_id) FROM children c WHERE c.rootId = r.id) FROM root r;
Caused by: org.hibernate.HibernateException: Errors in named queries: xxx
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Unable to locate
appropriate constructor on class RootExtended...
package plop; public class RootExtended{ private Root root; private Long count; public RootExtended(final Root root, final Long count) { this.root= root; this.count= count; } // getters and setters to follow }
SELECT new plop.RootExtended(r, (SELECT count(c.id) FROM Child as c WHERE c.rootId = r.id ) ) FROM Root as r
知道吗?
public class RootExtended{
private Root root;
private Long count;
public RootExtended(final Root root, final Long count) {
this.root= root;
this.count= count;
}
// getters and setters to follow
}
SELECT NEW package.RootExtended ( rt.r, rt.cnt) from ( select r from Root r,
(SELECT count(c.id) as cnt FROM Child c WHERE c.rootId = r.id ) rt )
问题内容: 假设有一张桌子: 和关联的JPA实体类 有什么方法可以构造松散地转换为该SQL的JPQL语句,即如何将case表达式转换为JPQL? 问题答案: 它已在JPA 2.0中添加 用法: 参考: http : //en.wikibooks.org/wiki/Java_Persistence/JPQL_BNF#New_in_JPA_2.0
问题内容: 我对SQL和JPQL的了解不是很好,我一直在尝试创建以下sql语句的JPQL查询: 编辑:糟糕,我忘记了按用户ID将搜索添加到查询中。我想获取用户所属的所有组。 但是我只是语法不正确。任何帮助将不胜感激。 相关代码段: Group.java User.java 问题答案: 使用JPQL,它将是: 这里是您的EntityManager,是要为其加载组列表的User类的实例。如果只有用户标
我想知道JPQL是否可以嵌套查询。我正在学习Spring Data JPA,我也上传了几个相关的问题。 如果MySQL中有以下sql,我如何生成JPQL: 我有两个实体。 上面的实体有一个@OneTo多集合,集合实体在下面。 我想得到不到10个孩子的作弊实体。
我有两个JPA实体 现在我想用JPQL做一些聚合查询: 得到的SQL查询(我使用的是MySQL数据库)如下所示:
如何将这个复杂的sql语句更改为JPQL? 这是否可以在JPQL表单中显示?