使用Spring Data JPA执行动态查询

时间:2018-11-15 11:59:58

标签: java spring-data-jpa

@Query(value = "SELECT * FROM H4 WHERE 1")
List getResult();

我要放置一个"SELECT * FROM H4 WHERE 1"变量,而不包含查询String,该变量包含在其他位置生成的查询。

2 个答案:

答案 0 :(得分:1)

@Query和其他注释一样,都使用编译时间常数来定义属性。除非您打算破解Spring Data JPA框架,否则无法在运行时定义其值。

您应该使用Specifications with criteriaQuery by example或JPQL来定义和执行动态查询。

答案 1 :(得分:0)

创建常量并按如下所示设置值。

@Query(value = ApplicationConstantClass.QUERY_STRING_CONSTANT)
List getResult();

或使用休眠的 EntityManager SessionFactory 来执行动态生成的查询。