java - 我可以从 liquibase xml 调用 Java 静态函数吗?

标签 java liquibase

我有一个正在生产的现有项目。我正在寻找更新列的值。商业方法已经准备好了。我可以通过 liquibase xml 调用这个函数吗?我还需要将表中的现有值传递到方法中。

<changeSet id="update_badges_hashes" author="Rakhunathan">
        <update tableName="badges">
            <column name="hashtags"  valueComputed="${net.compant.app.util.Generator.getData('1')}" />
        </update>
</changeSet>

此实现会引发错误,我正在寻找正确的方法。

最佳答案

也许我遗漏了一些东西,但据我所知,如果您需要执行某些Java方法,那么您唯一能做的就是创建自定义的changeSet。

您可以使用customChange:

<changeSet id="foo" author="bar">
    <customChange class="your.package.liquibase.YourJavaChangeSet"/>
</changeSet>

Java 类可能如下所示:

public class YourJavaChangeSet implements CustomTaskChange {

    @Override
    public void execute(Database database) throws CustomChangeException {
        // your logic here
    }

    @Override
    public String getConfirmationMessage() {
        return null;
    }

    @Override
    public void setUp() throws SetupException {

    }

    @Override
    public void setFileOpener(ResourceAccessor resourceAccessor) {

    }

    @Override
    public ValidationErrors validate(Database database) {
        return null;
    }
}

关于java - 我可以从 liquibase xml 调用 Java 静态函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61524737/

相关文章:

java - 两个使用liquibase的项目,如何处理变更日志中的冲突?

Java - 将 hashmap 写入 csv 文件

java - 如何将 Angular 6 项目和 Spring Boot 项目部署为单个部署单元

java - WS 到服务关注点

java - Liquibase 脚本失败

Liquibase - 更改表的外键删除类型

java - 从具有最低值的内部 HashMap 中返回一个键

java - Scala 闭包与 Java 内部类的比较 -> final VS var

java - Liquibase:如何识别仅更改集的基础 ID?

java - 使用 Liquibase 删除 MySQL 表