2010-08-05 75 views
0

因此,我的Web应用程序主要使用XML进行客户端到服务器的交互,而且我目前使用休眠保留了大部分后端。我知道有XML数据库,您可以使用hibernate通过使用DOM4J实体调用Sessions来保存XML,但我不确定提供XML的最有效方式是什么。在每次请求对象时,我都会从对象字段生成一个XML文档,然后将其提供。因此,对于每个新的请求,我都会生成一个全新的XML文档。所以我可以在第一次请求时在每个运行时周期为每个文档生成XML,然后将其存储在对象的字段中,以便我可以对其运行XSLT命令,但这看起来效率很低。我猜测每次请求资源时生成一个新的Document对象会更有效率,然后在请求被服务之后将其删除(并使用Hibernate查询语言进行选择)......或者我应该使用Hibernate或eXist来持久化xml ?(我真的不想使用xml数据库!)DOM4J和Hibernate:处理XML

回答

0

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

0

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

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