我可以从Liqubase XML调用Java静态函数吗?

Can I call a Java static function from liquibase xml?(我可以从Liqubase XML调用Java静态函数吗?)

本文介绍了我可以从Liqubase XML调用Java静态函数吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个正在生产的现有项目。我希望更新一列的值。商业方法已经准备好了。我可以通过Liqubase 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;
    }
}

这篇关于我可以从Liqubase XML调用Java静态函数吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:我可以从Liqubase XML调用Java静态函数吗?

基础教程推荐