カスタムリポジトリを作成したかった:
public interface FriendRepositoryCustom {
Page<Friend> findFriends(FriendCriteria friendCriteria, Pageable pageable);
}
そしてその実装:
@Repository
@Transactional(readOnly = true)
public class FriendRepositoryCustomImpl implements FriendRepositoryCustom {
@PersistenceContext
EntityManager entityManager;
@Override
public Page<Friend> findFriends(FriendCriteria friendCriteria, Pageable pageable) {
...
}
そしてそれをメインリポジトリに追加しました:
@Repository
public interface FriendRepository extends JpaRepository<Friend, Long>, JpaSpecificationExecutor<Friend>, FriendRepositoryCustom {
}
アプリケーションを起動すると、このエラーが発生します:
原因:org.springframework.data.mapping.PropertyReferenceException:タイプFriendのプロパティfindFriendsが見つかりません! at org.springframework.data.mapping.PropertyPath。(PropertyPath.Java:77)at org.springframework.data.mapping.PropertyPath.create(PropertyPath.Java:329)at org.springframework.data.mapping.PropertyPath.create( PropertyPath.Java:309)at org.springframework.data.mapping.PropertyPath.from(PropertyPath.Java:272)at org.springframework.data.mapping.PropertyPath.from(PropertyPath.Java:243)at org.springframework.data .repository.query.parser.Part。(Part.Java:76)at org.springframework.data.repository.query.parser.PartTree $ OrPart。(PartTree.Java:247)at org.springframework.data.repository.query .parser.PartTree $ Predicate.buildTree(PartTree.Java:398)at org.springframework.data.repository.query.parser.PartTree $ Predicate。(PartTree.Java:378)atorg.springframework.data.repository.query。 parser.PartTree。(PartTree.Java:86)at org.springframework.data.jpa.repository.query.PartTreeJpaQuery。(PartTreeJpaQuery.Java:70)... 43個の共通フレームが省略されています
実装クラスの名前が間違っている可能性があります。
Spring Data2.0では名前の期待が変わったことに注意してください。
<2.0の場合、実装は、追加のImpl
サフィックスが付いた最終的なリポジトリインターフェイスとして名前を付ける必要がありました。 例については、一致するリファレンスドキュメントを参照してください 。
> = 2.0の場合、実装には、追加のImpl
サフィックスが付いたカスタムインターフェイスとして名前を付ける必要があります。 例については現在のリファレンスドキュメントを参照してください 。
注:@Repository
アノテーションは必要ありません。