Java 在插入中液化CDATA
在liquibase中以编程方式将xml/json数据写入CDATA是否可能? 这是我写变更日志的方法Java 在插入中液化CDATA,java,liquibase,Java,Liquibase,在liquibase中以编程方式将xml/json数据写入CDATA是否可能? 这是我写变更日志的方法 private static void writeCommandToLiquibaseChangelog(String command) { DatabaseChangeLog changeLog = new DatabaseChangeLog(); ChangeSet changeSet = new ChangeSet("1", "tester", false
private static void writeCommandToLiquibaseChangelog(String command) {
DatabaseChangeLog changeLog = new DatabaseChangeLog();
ChangeSet changeSet = new ChangeSet("1", "tester", false, false, null, /* specify env ?*/ null, null, changeLog);
Column column = new Column("payload");
ColumnConfig columnConfig = new ColumnConfig(column);
columnConfig.setValue(command);
InsertDataChange insert = new InsertDataChange();
insert.setTableName("dc_command_initializer");
insert.setColumns(Arrays.asList(columnConfig));
changeSet.addChange(insert);
changeLog.addChangeSet(changeSet);
try (OutputStream baos = new ByteArrayOutputStream()) {
XMLChangeLogSerializer xmlChangeLogSerializer = new XMLChangeLogSerializer();
xmlChangeLogSerializer.write(changeLog.getChangeSets(), baos);
System.out.println(baos.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
我尝试过做一些类似于columnConfig.setValue(“”)的事情但是这对我没有帮助
我想要这样的东西:
<?xml version="1.0" encoding="UTF-8"?>
<column name="payload"><![CDATA[ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<test>this is test value</test> ]]> </column>
这是测试值]]>
使用columnConfig.setValue(“”)时发生了什么;?从liquibase:ColumnConfig.setValue的文档中可以看到“此方法不处理字符串。”。因此,它应该将您提供的字符串放入值中。这是输出:
。事实上,这不会影响数据库中的最终数据。但我想让changelog对其他用户可读。您可能应该为此提交一个功能请求。(也可能要求他们更新文档,不要说这个方法没有处理);?从liquibase:ColumnConfig.setValue的文档中可以看到“此方法不处理字符串。”。因此,它应该将您提供的字符串放入值中。这是输出:
。事实上,这不会影响数据库中的最终数据。但我想让changelog对其他用户可读。您可能应该为此提交一个功能请求。(也可能要求他们更新文档,不要说这种方法没有处理)。