簡體   English   中英

我可以從 liquibase 調用 Java static function 嗎?

[英]Can I call a Java static function from liquibase xml?

我有一個正在生產的現有項目。 我正在尋找更新列的值。 業務方法已准備就緒。 我可以通過 liquibase xml 調用這個 function 嗎? 我還需要將表中的現有值傳遞給方法。

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

此實現會引發錯誤,我正在尋找正確的方法。

也許我遺漏了一些東西,但據我所知,如果您需要執行一些 Java 方法,那么您唯一能做的就是創建自定義更改集。

您可以使用customChange

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

Java class 可能如下所示:

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;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM