1

我正在尝试将先前创建的 ID 转移到 mongock 中的其他变更集。这是我的解决方案,但我不知道它是否正确。如果您能分享您的建议,我将不胜感激。

@ChangeLog(order = "001")
public class DatabaseChangelock {

    private Map<String, ObjectId> myIdMap = new HashMap<>();

    @ChangeSet(order = "001", id = "logs001", author = "Me")
    public void userTest(UserEntityRepo user) {
        UserEntity userEntity = new UserEntity;
        
        userEntity.setName("Mike");
        userEntity.setSurname("Smith");
        
        user.save(userEntity);
        myIdMap.put("test",userEntity.getId());

    }
    @ChangeSet(order = "002", id = "logs002", author = "Me")
    public void factoryTest(FactoryEntityRepo factory) {
        FactoryEntity factoryEntity = new FactoryEntity;
        
        factoryEntity.setName("BigCompany");
        factoryEntity.setBossId(myIdMap.get("test"));
        factory.save(factoryEntity);
    }
}
4

1 回答 1

0

如果您正在考虑使用事务,我假设您的 MongoDB 数据库是 4.0 或更高版本。

在这种情况下,我建议您遵循官方 MongoDB 和 Spring 文档,然后按照Mongock 文档告诉它使用事务。

请注意,目前,Mongock 仅支持全有或全无事务,这意味着整个迁移只创建一个事务。

我们正在努力提供不同级别的交易以及其他机制来帮助非交易环境。

于 2020-09-02T10:37:40.800 回答