我有一个表 ROOT 和一个表 CHILDREN,其中包含与 ROOT 相关的行。
我想为 ROOT 的每一行检索一个对象,该对象包含 ROOT 对象以及 CHILDREN 表中与 ROOT.id 相关的行数。
这可以在 SQL 中很容易地实现,但我想知道如何在 JPQL 中编写它
在 SQL 中:
选择 r.*, (选择计数(c.i_id) 从 儿童 c 在哪里 c.rootId = r.id) 从根 r;
我试图在 JPA 中重写它,但它一直失败并出现以下错误
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...
Java类:
包扑通一声; 公共类 RootExtended{ 私有根根; 私人长计数; public RootExtended(final Root root, final Long count) { 这个.root=根; this.count=计数; } // 要遵循的 getter 和 setter }
JPQL:
选择 新的 plop.RootExtended(r, (选择 计数(c.id) 从 孩子作为 c 在哪里 c.rootId = r.id ) ) 从 根为 r
任何想法 ?