因此,我的web应用程序主要使用XML进行客户端到服务器的交互,而我目前使用hibernate来持久化我的大部分后端。我知道有可扩展标记语言的数据库,您可以通过使用DOM4J实体调用会话来使用hibernate保存可扩展标记语言,但我不确定提供可扩展标记语言的最有效方法到底是什么。此时,每次请求一个对象时,我都会从对象字段生成一个XML文档,然后提供它。因此,对于每个新请求,我都会生成一个全新的XML文档。因此,我可以在每个运行时周期中第一次请求文档时为其生成XML,然后将其存储在对象的字段中,以便随后对其运行XSLT命令,但这似乎有点低效。我猜每次请求资源时生成一个新的文档对象,然后在请求得到服务后将其删除(并使用Hibernate Query Language进行选择)会更有效。或者我应该使用Hibernate或eXist持久化xml?(我真的不想使用xml数据库!)
发布于 2010-08-06 04:34:16
您可以将XML存储为数据库中的CLOB或BLOB。如果在查询时不需要查看文档内部,则只需将关键字段外部化并根据这些字段查询XML即可。
发布于 2011-12-07 06:21:48
关系数据库的主要目的之一是避免重复。如果您有在文档之间共享的对象,并且将其存储在每个文档的XML中,则在更改共享对象时必须更新所有文档。
使用hibernate以正常的关系方式存储文档对象字段,并使用一些XML编组程序将其转换为XML或CXF,这是非常标准的实践。
https://stackoverflow.com/questions/3418039
复制相似问题