我看到了How can I insert an XML document in PostgreSQL in Java?,但我想知道jOOQ是否为这类问题提供了另一种解决方案。
目前我还没有看到另外一种类似
的方法String sql = "INSERT INTO xml_docs(id, gkuzu) VALUES (?, XMLPARSE(?))";
并使用jOOQ执行它
this.ctx.execute(sql);
但是对于更复杂的陈述还有另一种选择,我也可以写一些。
StringBuilder xml = new StringBuilder();
// ..
this.ctx.insertInto(MY_TABLE)
.set(MY_TABLE.NAME, name)
// ..
.set(MY_TABLE.DESCRIPTION_XML, xml.toString());
或类似的?
答案 0 :(得分:1)
jOOQ 3.7不支持开箱即用的XML(或JSON等)类型,但实际上,jOOQ可以帮助您通过实现自定义数据类型绑定来抽象XML数据类型。手册中有JSON和PostgreSQL的示例。您可以轻松地对XML进行调整:
http://www.jooq.org/doc/latest/manual/sql-building/queryparts/custom-bindings
基本上,您需要实现org.jooq.Binding<Object, YourXMLRepresentation>
,然后配置代码生成器以将此绑定应用于所有XML
类型列或特定名称模式的列:< / p>
http://www.jooq.org/doc/latest/manual/code-generation/custom-data-type-bindings