gpt4 book ai didi

mongodb - Spring Data - 如何编写 MongoRepository 方法进行 findAndModify 操作?

转载 作者:行者123 更新时间:2023-12-01 18:00:06 32 4
gpt4 key购买 nike

我使用了 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 方法更新员工姓名。

最佳答案

据我所知,这是不可能以优雅的方式实现的。在支持不同数据库的背景下,存储库的概念似乎更加通用。

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

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

关于mongodb - Spring Data - 如何编写 MongoRepository 方法进行 findAndModify 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40501590/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com