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

Java 在@query注释中传递动态创建的查询(根据条件),java,spring,jpa,spring-data,spring-repositories,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”部分 或 我可以创

我正在使用@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);
String query=从DoctorSymptomsModel ds中选择ds.symptom,其中
ds.doctorId=:doctorId和ds.isMostUsed=:isMostUsed
如果(结果){
query=从DoctorSymptomsModel ds中选择ds.symptom,其中ds.doctorId=
:doctorId和ds.isMostUsed=:isMostUsed按createdDate排序
}
//在此处传递查询变量
@查询(查询)
List findDoctorSymptomsModelList(@Param(“doctorId”)长doctorId,
@参数(“isMostUsed”)布尔值(isMostUsed);

要进行动态查询,您应该考虑CriteriaQuery。请看这篇文章以作简要介绍。

我也在寻找你的想法是否可行。我有一个想法要回答,但我会在某个时候回答,对不起