无法在Spring Data Repository中创建自定义查询方法

我想创建自定义存储库:

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!在org.springframework.data.mapping.PropertyPath。(PropertyPath.java:77)在org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:329)在org.springframework.data.mapping.PropertyPath.create(

org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:272)上的PropertyPath.java:309)org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:243)上的org.springframework.data

org.springframework.data.repository.query.parser.PartTree $

OrPart。(PartTree.java:247)的org.springframework.data.repository.query的.repository.query.parser.Part。(Part.java:76)

org.springframework.data.repository的.parser.PartTree $

Predicate.buildTree(PartTree.java:398)。

回答:

您可能将实现类命名为错误。

请注意,命名期望随着Spring Data 2.0的改变而改变。

对于<2.0,必须将实现命名为带有附加Impl后缀的最终存储库接口。有关示例,请参见匹配的参考文档。

对于> =

2.0,必须将实现命名为带有附加Impl后缀的自定义接口。有关示例,请参见当前参考文档。

注意:您不需要任何@Repository注释。

以上是 无法在Spring Data Repository中创建自定义查询方法 的全部内容, 来源链接: utcz.com/qa/407705.html

回到顶部