JOOQ从列格式化tex

时间:2018-03-12 15:52:45

标签: java sql jooq

我有一个文本类型的列,我存储了xml,我想在我的查询中使用jooq格式化它。例如:

<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>

我的目标是从行的开头删除空格并删除换行符,在结果中我希望将文本作为单行:

<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>

如您所见,我删除了行和文本开头的所有换行符和空格。那么有没有办法用jooq做到这一点?

1 个答案:

答案 0 :(得分:0)

我理解你的问题的方式,你希望每当jOOQ从你的数据库读取XML内容时,就会发生这种XML“规范化”,而你的XML内容实际上只是String。在这种情况下,您可以实现一个简单的Converter<String, String>并将该转换器应用于生成的代码: https://www.jooq.org/doc/latest/manual/code-generation/custom-data-types

如果您没有使用代码生成器,可以按如下方式创建自己的数据类型:

DataType<String> XML_TYPE = SQLDataType.VARCHAR.asConvertedDataType(new MyConverter());
Field<String> field = DSL.field("my_column", XML_TYPE);

Result<Record1<String>> result =
DSL.using(configuration)
   .select(field)
   .from(...)
   .fetch();