XML生成与XML数据库

时间:2010-08-12 19:06:52

标签: java xml hibernate

目前我正在使用Hibernate来保存我的应用程序中的实体,并以XML的形式将实体提供给我的用户。然而,这意味着每次请求资源时我都会通过Java生成XML,这种情况由于很多原因而无法实现。我想知道我是否想在应用程序运行时创建一个Document对象的缓存(即批量加载所有对象作为Document对象),或者除了MySQL / Hibernate之外还可以使用基于XML的数据库...

2 个答案:

答案 0 :(得分:2)

您可以使用任何缓存解决方案 - 例如EhcacheOSCache

  • 当客户端请求xml时,搜索缓存(可能是实体的id)
  • 如果在缓存中找不到文档,则从DB中获取文档并将其转换为XML,然后将其存储在缓存中并将其返回
  • 每当修改实体时,使其缓存条目无效

但是在你这样做之前,做一个实际的基准来确定生成的CPU消耗量和发生频率,并将其与缓存所需的内存进行比较。

答案 1 :(得分:0)

以防万一,请注意Hibernate允许使用XML数据。来自Chapter 18. XML Mapping

  

Hibernate允许您使用   持久性XML数据大致相同   你使用持久性POJO的方式。一个   解析后的XML树可以被认为是   另一种表达方式   对象级别的关系数据,   而不是POJO。

     

Hibernate支持dom4j作为API   操纵XML树。 你可以写   从中检索dom4j树的查询   数据库并进行任何修改   你自动做到树   同步到数据库。您可以   甚至拿一个XML文档,解析它   使用dom4j,并将其写入   任何Hibernate的基础数据库   操作:persist(),saveOrUpdate(),   merge(),delete(),replicate()   (目前尚不支持合并)。

     

此功能有许多应用程序   包括数据导入/导出,   通过JMS实体化数据外部化   或基于SOAP和XSLT的报告。

     

可以使用单个映射   同时映射a的属性   XML文档的类和节点   数据库,或者,如果没有类   要映射,它可以用来映射   XML。

不确定这是否符合您的需求(我从未使用过这个不太知名的功能)。但也许看一看。