如何在 Spring Boot JPA 中按 Postgres 的 json 属性排序?
Posted
技术标签:
【中文标题】如何在 Spring Boot JPA 中按 Postgres 的 json 属性排序?【英文标题】:How to order by json property of Posgres in Spring boot JPA? 【发布时间】:2020-04-16 13:21:44 【问题描述】:我在JPA
中写了一个@Query
以通过json
属性获取详细信息,这会导致错误。
@Query("SELECT t FROM Tcl order by t.equipment->>'eqpm_n' ASC")
public List<Tcl> getEquipmentList();
原因:org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌
SELECT t FROM com.target.mpe.models.Tcl order by t.equipment->>'eqpm_n' ASC
同样的查询在 Postgres 控制台中运行良好。 我怎样才能让它在 SpringBoot JPA 中工作? 我需要尝试原生查询吗?
【问题讨论】:
也许它被那个包名弄糊涂了。尝试SELECT *
仅用于测试目的。
【参考方案1】:
JPQL 不支持这种 PostgreSQL 语法。您必须使用 nativeQuery:
@Query(value = "SELECT * FROM Tcl t order by t.equipment->>'eqpm_n' ASC", nativeQuery = true)
public List<Tcl> getEquipmentList();
【讨论】:
感谢您的帮助。以上是关于如何在 Spring Boot JPA 中按 Postgres 的 json 属性排序?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Data (JPA) 派生查询中按多个属性排序?
spring boot:实现jpa+thymeleaf 用户管理
spring boot:实现jpa+thymeleaf 用户管理
spring boot:实现jpa+thymeleaf 用户管理