如何将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);