BSM*_*BSM 5 mongodb spring-data mongodb-query
我使用了 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;
}
Run Code Online (Sandbox Code Playgroud)
//类结构
@Document
public class Organization {
private Integer id;
private List<Employee> employees;
}
@Document
public class Employee {
private Integer id;
private String name;
}
Run Code Online (Sandbox Code Playgroud)
我想使用 Spring Data MongoRepository 方法来实现上述目标。请告诉我如何使用 MongoRepository 方法更新员工姓名。
据我所知,这是不可能以优雅的方式实现的。在支持不同数据库的背景下,存储库的概念似乎更加通用。
如果您需要充分的灵活性,您可以不使用 spring 生成的存储库功能并使用您自己的实现。您还可以为您的存储库创建一个自己的基类,以帮助您重用经常需要的功能。org.springframework.data.mongodb.repository.support.SimpleMongoRepository在 Spring-Data-MongoDB 中,您可以找到可以用作起点的类。
另请参阅此线程中的答案:Spring Data's MongoTemplate 和 MongoRepository 之间的区别是什么?
| 归档时间: |
|
| 查看次数: |
3323 次 |
| 最近记录: |