【发布时间】:2021-07-11 07:38:42
【问题描述】:
我想问一下是否有可能在 JPA(使用 HQL)中使用对象聚合函数。 json_agg()等函数
我想实现类似的目标。所以目标是获取实体并将其转换为字符串。
Expressions.stringTemplate("jsonb_agg(json_build_object('entity', {0}))", qEntity.id)
为什么我尝试这样做我收到org.hibernate.QueryException: No data type for node: org.hibernate.hql.internal.ast.tree.MethodNode 错误。我读过这个问题是我不能使用 HQL,因为我不能在 json 聚合函数中使用 HQL 对象属性。
我想尽可能避免使用 querydsl-sql(它使 docker 应用程序部署变得复杂,它需要连接到数据库等)。 那么有什么方法可以使用 HQL 来聚合这样的对象吗?我正在使用 spring-data-jpa,所以如果有更好的解决方案,这是使用这个工具的机会。
【问题讨论】:
标签: sql spring spring-data hql querydsl