首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在Spring数据仓库中使用mongock吗?

我可以在Spring数据仓库中使用mongock吗?
EN

Stack Overflow用户
提问于 2020-02-10 11:56:09
回答 2查看 1.3K关注 0票数 2

我试图用@Autowired注释将一个存储库注入changelog,但是它没有被注入。

配置使用spring应用程序上下文。

代码语言:javascript
复制
@Bean
public SpringBootMongock mongock(ApplicationContext springContext, MongoClient mongoClient) {
  return new SpringBootMongockBuilder(mongoClient, "yourDbName", "com.package.to.be.scanned.for.changesets")
      .setApplicationContext(springContext) 
      .setLockQuickConfig()
      .build();
}

和变化的人

代码语言:javascript
复制
@ChangeLog(order = "001")
public class MyMigration {

    @Autowired
    private MyRepository repo;

    @ChangeSet(order = "001", id = "someChangeId", author = "testAuthor")
    public void importantWorkToDo(DB db){
       repo.findAll() // here null pointer
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-02 21:34:02

首先,请注意,如果在您的changelogs中使用存储库,那么将其用于写操作是一种错误的做法,因为它不会被锁机制覆盖(这是即将到来的特性),只用于读取。

要注入存储库(或任何其他依赖项),只需将其注入changeSet方法签名中,如下所示:

代码语言:javascript
复制
@ChangeLog(order = "001")
public class MyMigration {


    @ChangeSet(order = "001", id = "someChangeId", author = "testAuthor")
    public void importantWorkToDo(MongoTemplate template, MyRepository repo){
       repo.findAll(); this should work
    }
}

请注意,您应该使用最后一个版本(此时为3.2.4),并且不再支持DB类。请使用MongoDatabase或MongoTemplate(首选)。

蒙古国的文件

票数 2
EN

Stack Overflow用户

发布于 2020-06-03 07:19:17

我们最近发布了4.0.7.alpha版本,除其他外,它允许您在changeSets中使用Spring存储库(以及您希望使用的任何自定义bean ),而不存在任何问题。您可以插入、更新、删除和读取。锁会安全地盖住它。

唯一的限制是它需要是一个接口,这应该是Spring存储库的常见情况。

请看一下这个示例

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

https://stackoverflow.com/questions/60149903

复制
相关文章

相似问题

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