データベースからデータを取得するときに適用するフィルタのセットに従ってクエリ文字列を生成するメソッドを使用しています。したがって、新しいフィルタごとに、このメソッドは例えばAND variable_x = '4'
のようなものを追加します。実行時に生成されたjpqlクエリで@Queryを提供する
私はスプリングデータのJpaRepository
インターフェイスを使用したいと思います。この生成クエリを実行するには、@Query
という注釈が付けられたメソッドを作成します。ただし、@Query
には値として定数が必要です。では、この生成されたクエリを@Query
に実行させる方法はありますか?例えば、このようなことができますか? JPQLクエリ全体をパラメータとして@Query
に与えることはできますか?
@Query("?1")
public abstract void executeRuntimeGeneratedQuery(String query);
また、私の問題を解決するより洗練されたソリューションがありますか?
条件付きのSpringデータで使用するには、QueryDSLまたは仕様を使用する必要があります。この[記事](https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/)または[this](https://docs.spring)を確認してください。 io/spring-data/jpa/docs/current/reference/html/#special)を実行する方法は です。より単純な条件の場合は、[Query by Example](https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#query-by-example) – Ranjeet