【问题标题】:Spring Data - How to write MongoRepository method for findAndModify operation?Spring Data - 如何为 findAndModify 操作编写 MongoRepository 方法?
【发布时间】:2017-03-22 22:41:57
【问题描述】:

我使用了 MongoTemplate 的 findAndModify 方法,如下所示,

 public Organization findAndModifyOrganization(Integer orgId, String name, Integer empId)
{
    Query query = new Query();
    query.addCriteria(Criteria.where("employees.id").is(empId));
    query.addCriteria(Criteria.where("id").is(orgId));

    Update update = new Update();
    update.set("employees.$.name", name);
    Organization org = mongoTemplate.findAndModify(query, update, new FindAndModifyOptions().returnNew(true), Organization.class);

    return org;
} 

//类结构

@Document
public class Organization {
    private Integer id;
    private List<Employee> employees;
}

@Document
public class Employee {
    private Integer id;
    private String name;
}

我想使用 Spring Data MongoRepository 方法实现上述目标。请告诉我如何使用 MongoRepository 方法更新员工姓名。

【问题讨论】:

    标签: mongodb mongodb-query spring-data


    【解决方案1】:

    正如我所见,这是不可能的。存储库的概念似乎更普遍,以支持不同的数据库。

    如果您需要完全的灵活性,您可以不使用 spring 生成的存储库的功能并使用您自己的实现。您还可以为您的存储库创建一个自己的基类,以帮助您重用经常需要的功能。在 Spring-Data-MongoDB 中,您可以找到可以用作起点的类 org.springframework.data.mongodb.repository.support.SimpleMongoRepository

    另请参阅此线程中的答案:What's the difference between Spring Data's MongoTemplate and MongoRepository?

    【讨论】:

      猜你喜欢
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 2019-09-06
      • 1970-01-01
      • 2017-10-24
      • 2014-10-30
      相关资源
      最近更新 更多