私はカスタムSpringリポジトリを実装しようとしています。私は春のブートを使用すると、応じていタイプのプロパティが見つかりません。カスタムSpringデータリポジトリ
public interface UserRepository extends JpaRepository<User, String>, FilterRepositoryCustom {
...
}
:
public interface FilterRepositoryCustom {
List<User> filterBy(String role);
}
実装:
public class FilterRepositoryImpl implements FilterRepositoryCustom {
...
}
と "メイン" リポジトリ、私のカスタムリポジトリを拡張私はインターフェイスを持っていますdocs:
By default, Spring Boot will enable JPA repository support and look in the package (and its subpackages) where @SpringBootApplication is located.
私は自分のアプリケーションを実行すると、私はこのエラーを取得:
org.springframework.data.mapping.PropertyReferenceException: No property filterBy found for type User!
私はこれが動作することに同意(およびアクションでそれを見ている)が、私は明示的に使用するリンクのドキュメント、とこの動作を両立に苦労しています ' UserRepository'という名前のリポジトリに「CustomizedUserRepositoryImpl'」を追加しました。次に、DocResositoryに 'HumanRepositoryImpl'と' ContactRepositoryImpl'を一緒に使用するようにドキュメントをさらに進めます(例29)。重要なことは、フラグメント実装名がベースリポジトリ名ではなくフラグメントインタフェース名と一致することを示しているようですが、それは明らかに私が見たものではありません。私は混乱しています... –
基本的なリポジトリ名に基づいて実装名を指定するという要件は、旧式(1.x)のバージョンデータの場合にのみ当てはまります。スプリングデータのバージョン2.xでは、この要件が変更されます。 2.xでは、インプット名はカスタムインターフェイス名に従わなければなりません。 –
あなたは私の時間を救い、私を幸せにしました!おかげさまで、Spring Dataの命名は本当にマザー、テストのためのイベントです。 –