将JAXB映射到数据库表的最佳方法

时间:2017-03-17 16:28:17

标签: java xml database jaxb

我有一个入站xml,我使用xjc工具映射到JAXB对象(构建pojos)

我想知道将这些对象映射到各种表的最佳方法是什么。

一个Object / Xml可以映射到多个表,我认为这些表规则是hibernate。作为一个基本的解决方案,我相信我需要在某种程度上注释对象中的字段(通过xsd中的标签?我不知道)到数据库列名。

有没有人遇到过这个?

谢谢

5 个答案:

答案 0 :(得分:8)

我猜你需要Hyperjaxb3为JAXB对象提供关系持久性。

@lexicore是关于这个项目的作者。

答案 1 :(得分:2)

您可以使用xjc的扩展程序 - hyperjaxb

  • hyperjaxb2 - 使用JAXB和Hibernate的XML数据的关系持久性。
  • hyperjaxb3 - JAXB对象的持久层。

为此,hyperjaxb3将更可取。

以下是一些教程Generate JPA Java classes from XSD schema file using Maven

的链接

答案 2 :(得分:2)

请参阅HyperJaxb的以下链接。

Click for pdf

Click for web docs

希望以上链接对您有所帮助。

答案 3 :(得分:1)

目前还不清楚数据库架构和XML架构之间的相关性。 当它们之间的概括和连贯性太少时,那么最糟糕的情况是,您需要为每个JAXB实体手动耦合XML和数据库。

如果有足够的一致性和可理解的规则,您可以尝试编写自己的代码生成器,以使用JAXB和JPA注释创建实体代码。

另外,尝试查看支持JAXB和JPA注释的引擎: EclipseLink

答案 4 :(得分:1)

如果您有复杂的对象,无架构数据库将大大简化开发和处理时间。

根据我的经验:获得了数百万个具有200-300个不同属性的XML,这些属性嵌套在多个级别中。

花了几天时间为JAXB + JPA持久化创建实体。插入速度大约是每秒50个对象,分成20-40个表。

MongoDB的速度大约是每秒1000个对象。没有发展努力。 只需读取xml,例如将其转换为带有org.json的JSON,将json转换为BSON并插入。

分析表明,两次转换的时间可以忽略不计(几个百分点)。大部分时间都是通过保存到数据库来实现的(比Oracle RDBMS快20-40倍)。