【问题标题】:Best way to map JAXB to a database table将 JAXB 映射到数据库表的最佳方法
【发布时间】:2017-03-17 16:28:17
【问题描述】:

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

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

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

有人遇到过这种情况吗?

谢谢

【问题讨论】:

    标签: java xml database jaxb


    【解决方案1】:

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

    @lexicore 是这个项目的作者。

    【讨论】:

    • 我认为这个项目已经不再维护了。
    【解决方案2】:

    您可以使用 xjc 的扩展名 - hyperjaxb

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

    为此,hyperjaxb3 更可取。

    这里是一些教程的链接Generate JPA Java classes from XSD schema file using Maven

    【讨论】:

      【解决方案3】:

      目前还不清楚数据库模式和 XML 模式之间的一致性。 当它们之间的泛化和连贯性太少时,这是最坏的情况,您需要为每个 JAXB 实体手动耦合 XML 和数据库。

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

      另外,请尝试寻找支持 JAXB 和 JPA 注释的引擎: EclipseLink.

      【讨论】:

        【解决方案4】:

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

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

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

        MongoDB 的速度约为每秒 1000 个对象。并且没有开发工作。 只需读取 xml,使用 org.json 将其转换为 JSON,例如,将 json 转换为 BSON 并插入。

        分析显示,两次转化花费的时间可以忽略不计(几个百分比)。大部分时间都花在了保存到数据库上(比 Oracle RDBMS 快 20-40 倍)。

        【讨论】:

          【解决方案5】:

          HyperJaxb请参考以下链接。

          Click for pdf

          Click for web docs

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-03-16
            • 2020-06-05
            • 2011-07-15
            • 2019-07-15
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多