当前位置: 首页 > 知识库问答 >
问题:

Spring-数据mongodb自定义实现PropertyReferenceException

席宜修
2023-03-14

http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/repositories.html

Spring Data的MongoTemplate和MongoRepository有什么区别?

我这样做是因为我需要使用MongoTemplate进行特殊查询。

org.springframework.data.mapping.PropertyReferenceException: No property search found for type com.eerra.core.common.dto.User

这里也描述了这个问题,但解决方案似乎对我不起作用:

http://forum.springsource.org/showthread.php?114454-custom-repository-functionality

问题

Spring-data.xml

<!-- Spring Data MongoDB repository support -->
<mongo:repositories base-package="com.eerra.*.common.service" />

存储库类和接口位于以下包中:

com.eerra.core.common.service.UserRepositoryInterface.java com.eerra.core.common.service.UserRepositoryCustom.java(接口)com.eerra.core.common.service.UserRepositoryCustomImpl.java(实现)

public interface UserRepositoryCustom {
    List<User> searchAllUsers();
}

UserRepositoryCustomImpl.java

public class UserRepositoryCustomImpl implements UserRepositoryCustom {

    @Autowired
    private MongoTemplate mongoTemplate;

    @Override
    public List<User> searchAllUsers() {
        return mongoTemplate.findAll(User.class);
    }
}

UserRepositoryInterface.java

@Repository
public interface UserRepositoryInterface extends MongoRepository<User, String>, UserRepositoryCustom {
    User findByEmail(String email);
    List<User> findByEmailLike(String email);
    List<User> findByEmailOrLastName(String email, String lastName);
    List<User> findByEmailOrFirstNameLike(String email, String firstName);

    @Query("{\"$or\" : [ { \"email\" : { \"$regex\" : ?0, \"$options\" : \"i\"}} , " +
        "{ \"firstName\" : { \"$regex\" : ?0, \"$options\" : \"i\"}}, " +
        "{ \"lastName\" : { \"$regex\" : ?0, \"$options\" : \"i\"}}]}")
    List<User> findByEmailOrFirstNameOrLastNameLike(String searchText);
}

共有1个答案

微生嘉
2023-03-14

问题解决了。当Impl类的名称不正确时会出现此错误。Impl类必须根据存储库类命名。因此在本例中,名称必须如下所示:

  • com.eerra.core.common.service.userRepositoryInterface.java(主存储库)
  • com.eerra.core.common.service.UserRepositoryInterfaceImpl.java(自定义存储库方法的实现)
  • com.eerra.core.common.service.UserRepositoryInterfaceCustom.java(使用自定义方法的接口)

在这里看到答案:Spring Data的MongoTemplate和MongoRepository有什么区别?

 类似资料:
  • 我有个问题。我制作了一个使用spring-data的应用程序,并使用spring-data-rest将其公开为REST服务。一切都很顺利,直到我想有一个定制的实现。我用一个附加的方法创建了一个CustomSomethingRepository和一个SomethingRepositoryImpl。Spring data repository接口扩展了CustomSomethingRepository

  • 本文向大家介绍layui实现数据表格自定义数据项,包括了layui实现数据表格自定义数据项的使用技巧和注意事项,需要的朋友参考一下 layui是一个很适合后台开发人员用的一个前端框架,界面简洁,功能丰富。 大家知道,系统一般都有数据表格及分页功能,尤其在后台管理系统之类,这类场景更是很多,layui也为我们提供了对应的支持,我这里要说的是,layui对异步返回的数据默认是有一套格式的,像下面这样

  • 本文向大家介绍Pytorch 实现数据集自定义读取,包括了Pytorch 实现数据集自定义读取的使用技巧和注意事项,需要的朋友参考一下 以读取VOC2012语义分割数据集为例,具体见代码注释: VocDataset.py Train.py 以上这篇Pytorch 实现数据集自定义读取就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 我正试图修改这个来自的前馈网络https://github.com/yunjey/pytorch-tutorial/blob/master/tutorials/01-basics/feedforward_neural_network/main.py 使用我自己的数据集。 我定义了一个自定义数据集,其中两个1微米数组作为输入,两个标量对应的输出: 我已更新超参数以匹配新的输入大小(2) 我还改变了t

  • 我正在使用Spring开发一个应用程序。在Access Control Access一节中,我想使用Spring Security Acl(我是Acl的新手)。我想在我的应用程序中实现ACL基于两点: 应用程序应该具有以下五种权限:、、、和。 权限是分层的,当用户具有权限时,它应该能够,或者当用户具有权限时,它应该能够、和等。 更新: 我的应用程序是基于Spring MVC RESTful的。当用

  • 我想用自定义实现扩展,因此添加了一个接口和一个扩展该接口的类。 有没有方法在我的自定义类中调用中的方法? 注意:这也是在https://stackoverflow.com/a/11881203/40064上作为评论提出的,但我认为这很常见,值得单独提出一个问题。