2012-11-20 53 views
2

我偶然发现了Oracles XML DB功能,但到目前为止,从我的阅读中我只能看到使用JDBC实现的示例。Oracle XML DB和Java持久性API

这是其中一个例子:

import oracle.xdb.XMLType; 
... 
PreparedStatement stmt = conn.prepareStatement(
    "SELECT e.poDoc FROM po_xml_tab e"); 
ResultSet rset = stmt.executeQuery(); 

while(rset.next()) { 
    // get the XMLType 
    XMLType poxml = (XMLType)rset.getObject(1); 
    // get the XML as a string... 
    String poString = poxml.getStringVal(); 
} 

根据官方xml db developers guide,有将数据存储在一个对象关系(结构化的)格式的选项。这使我认为在XML DB和JPA之间应该有一个几乎无缝的链接。也许我错过了一些东西,或者它可能不存在?

他们可以一起工作吗?除了JDBC还有其他选择吗?或者,我可以只为查询执行JPA,而为XML执行JDBC?

编辑: Oracle XML DB是否值得使用它?因为它看起来并不像任何人使用它(根据迄今为止的观点和反应)。

回答

2

您可以使用JPA的Oracle XDB功能。如果您有一列XMLType,则可以使用@Basic映射到String来将其映射到JPA实体中。

在EclipseLink中,您可以使用Converter将其映射到另一个数据类型,或者使用DirectToXMLTypeMapping来映射DOM。

如果要将XML映射到对象,可以使用使用JAXB的Converter。

+0

谢谢!我可能想要使用JAXB映射到对象,你知道任何使用Converter的优秀资源吗? – knownasilya