如何用Java中的Document对象初始化SQLXML



如何将org.w3c.dom.Document对象转换为java.sql.SQLXML,以便使用Hibernate将其持久化到数据库中?目前,我可以通过javax.xml.transform.Transformer将其转换为String来使其工作,但我认为这是效率最低的方法。

我尝试了以下操作,但没有任何内容保存到DB列中。

SQLXML sqlxml = session.connection().createSQLXML();
sqlxml.setResult(DOMResult.class).setNode(myDocument);
preparedStmt.setSQLXML(index, sqlxml);

事实上,它并没有按预期工作,只是使用javax.xml.transform.sax.SAXResult使其工作:

SQLXML sqlxml = stmt.getConnection().createSQLXML();
SAXResult sax = sqlxml.setResult(SAXResult.class);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.transform(new DOMSource(document), sax);
stmt.setSQLXML(index, sqlxml);

最新更新