首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写使用spring数据的项目中单个操作或查询的写入关注点。

重写使用spring数据的项目中单个操作或查询的写入关注点。
EN

Stack Overflow用户
提问于 2022-02-15 16:02:52
回答 1查看 197关注 0票数 0

我正在开发使用spring数据作为抽象来访问databaseMongoDB的spring引导项目。我只想为两个特定的操作更改写关注点。

下面是用于访问Mongo集合的实体和存储库类:

  • Entity

代码语言:javascript
复制
@Document(collection = "tests")
@Data
@NoArgsConstructor
public class Test {
    
    @Id
    private String id;
    private String name;
    private String category;
   

}

  • Repository

代码语言:javascript
复制
@Repository
public interface TestRepository extends BaseMongoRepository<Test> {
    ...

    @DeleteQuery(value="{'id':?0}, { writeConcern: { w : '2', wtimeout : 1000 }, delete=true")
    void safeDeleteByTestId(String id,String name);

    default void updateNameForAll(String category) {
        final Query query = query(where("category").is(category);
        final Update update = Update.update("name", name);
        getMongoOperations().updateMulti(query, updategetMetadata().getCollectionName());
    }
    ...
}

如何修改updateNameForAll方法以只增加此查询的写关注点?我不想覆盖整个集合或数据库的写关注点。

好样的,兰多。

EN

回答 1

Stack Overflow用户

发布于 2022-02-15 17:22:53

我找到了解决这个问题的办法:

我创建了一个名为ETestRepository的新接口,如下所示:

代码语言:javascript
复制
public interface ETestRepository {
    void safeUpdateNameForAll(String category);
}

然后,我创建了一个接口的实现:

代码语言:javascript
复制
public interface ETestRepositoryImpl implements  ETestRepository  {
    @Autowired
    private MongoTemplate mongoTemplate;

    @Override
    public void safeUpdateNameForAll(String accountId, String contextId, ChangeSetRowAction action) {
        mongoTemplate.setWriteConcern(WriteConcern.W2);
        final Query query = query(where("category").is(category);
        final Update update = Update.update("name", name);
        mongoTemplate.updateMulti(query,update, Test.class);
    }
}

最后,我修改了TestRepository接口以扩展ETestRepository接口以包括safeUpdateNameForAll方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71129617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档