一般的なファインダーを使用して REST インターフェイスを構築しようとしています。アイデアは、ユーザーがパラメーターを指定せずにすべてのレコードを取得したり、フィールドの任意の組み合わせを入力して検索結果を絞り込んだりできる検索フォームを提供することです。
私が持っている簡単な例では、JpaRepository に @RestResource で注釈を付けています。これは、@Query を使用するか、メソッド名の規則によってファインダーを追加するすぐに使える優れた方法を提供します。
@RestResource(path = "users", rel = "users")
public interface UserRepository extends JpaRepository<User, Long>{
public Page<User> findByFirstNameStartingWithIgnoreCase(@Param("first") String fName, Pageable page);
}
パラメータをマップし、ページング、ソート、および実際の実装クエリが動的に構成される (おそらく QueryDSL を使用して) REST サポートを活用するカスタム ファインダーを追加しようとしています。メソッドにはn 個のパラメータ (p 1 ... p n ) となり、次のようになります。
public Page<User> findCustom(@Param("p1") String p1, @Param("p2") String p2, ... @Param("pn") String pn, Pageable page);
私はで説明されているアプローチを試しました:
しかし、私のカスタム メソッドはリポジトリの REST インターフェイス (/users/search) からは利用できません。
誰かがすでにこれを理解していて、私に何らかの方向性を教えてくれることを願っています.