DOM4J和Hibernate:处理XML

时间:2010-08-05 18:44:03

标签: java xml hibernate dom4j

所以我的Web应用程序主要使用XML进行客户端到服务器的交互,而我目前使用hibernate来保留大部分后端。我知道有XML数据库,你可以通过调用带有DOM4J实体的Sessions来使用hibernate保存XML,但我不确定提供XML的最有效方法是什么。在每次请求对象时,我都会从对象字段生成XML文档,然后将其提供。因此,对于每个新请求,我生成一个全新的XML文档。所以我可以在第一次请求时在每个运行时循环期间为每个文档生成XML,然后将其存储在对象的字段中,这样我就可以针对它运行XSLT命令,但这似乎效率低下。我猜测每次请求资源时生成一个新的Document对象会更高效,然后在请求被提供后删除它(并使用Hibernate Query Language进行选择)......或者我应该使用Hibernate或eXist来持久化xml ?(我真的不想使用xml数据库!)

2 个答案:

答案 0 :(得分:0)

您可以将XML存储为数据库中的CLOB或BLOB。如果在查询时不需要查看文档内部,则可以外部化关键字段并根据这些字段查询XML。

答案 1 :(得分:0)

关系数据库的主要目的之一是避免重复。如果您拥有在文档之间共享的对象,并且在每个文档中以XML格式存储这些对象,则在更改共享对象时必须更新所有文档。

使用hibernate以正常的关系方式存储文档对象字段是非常标准的做法,并使用一些XML编组器将其转换为XML并返回,例如, xstream或CXF。