在@Query注释中传递动态创建的查询(根据条件)

时间:2016-08-04 17:32:34

标签: java spring jpa spring-data spring-repositories

我使用@Query注释在spring存储库中执行查询。 但我想根据条件更改某些部分或创建一个新查询并传入@Query(“根据条件传递查询”)

这是我的查询

  @Query("SELECT ds.symptom  FROM DoctorSymptomsModel ds where ds.doctorId = :doctorId and ds.isMostUsed = :isMostUsed)

如果某些条件满足,则在查询中连接“ORDER BY createdDate”部分。

或者

我可以创建变量并在该变量中设置查询并设置为

  String query = SELECT ds.symptom  FROM DoctorSymptomsModel ds where
  ds.doctorId = :doctorId and ds.isMostUsed = :isMostUsed

  if(result){

  query = SELECT ds.symptom  FROM DoctorSymptomsModel ds where ds.doctorId =
  :doctorId and ds.isMostUsed = :isMostUsed ORDER BY createdDate


}

    //pass the query variable here
    @Query(query)
    List<String> findDoctorSymptomsModelList(@Param("doctorId") long doctorId,
    @Param("isMostUsed") boolean isMostUsed);

1 个答案:

答案 0 :(得分:1)

要进行动态查询,您应该考虑CriteriaQuery。请查看此link进行简要介绍。