【发布时间】:2017-03-17 16:28:17
【问题描述】:
我有一个入站 xml,我使用 xjc 工具将其映射到 JAXB 对象(以构建 pojos)
我想知道将这些对象映射到各种表的最佳方法是什么。
我认为一个 Object / Xml 可以映射到多个表,这些表规则休眠。作为一个基本解决方案,我相信我需要以某种方式将对象中的字段注释(通过 xsd 中的标签?我不知道)到数据库列名。
有人遇到过这种情况吗?
谢谢
【问题讨论】:
我有一个入站 xml,我使用 xjc 工具将其映射到 JAXB 对象(以构建 pojos)
我想知道将这些对象映射到各种表的最佳方法是什么。
我认为一个 Object / Xml 可以映射到多个表,这些表规则休眠。作为一个基本解决方案,我相信我需要以某种方式将对象中的字段注释(通过 xsd 中的标签?我不知道)到数据库列名。
有人遇到过这种情况吗?
谢谢
【问题讨论】:
我猜你需要Hyperjaxb3,它为 JAXB 对象提供关系持久性。
@lexicore 是这个项目的作者。
【讨论】:
您可以使用 xjc 的扩展名 - hyperjaxb
为此,hyperjaxb3 更可取。
这里是一些教程的链接Generate JPA Java classes from XSD schema file using Maven
【讨论】:
目前还不清楚数据库模式和 XML 模式之间的一致性。 当它们之间的泛化和连贯性太少时,这是最坏的情况,您需要为每个 JAXB 实体手动耦合 XML 和数据库。
如果有足够好的连贯性和可理解的规则,您可以尝试编写自己的代码生成器来创建带有 JAXB 和 JPA 注释的实体代码。
另外,请尝试寻找支持 JAXB 和 JPA 注释的引擎: EclipseLink.
【讨论】:
如果您有复杂的对象,无模式数据库将大大简化开发和处理时间。
根据我的经验:获得数百万个具有 200-300 个不同属性的 XML,嵌套在多个级别中。
花了几天时间为 JAXB + JPA 创建实体。插入速度约为每秒 50 个对象,拆分为 20-40 个表。
MongoDB 的速度约为每秒 1000 个对象。并且没有开发工作。 只需读取 xml,使用 org.json 将其转换为 JSON,例如,将 json 转换为 BSON 并插入。
分析显示,两次转化花费的时间可以忽略不计(几个百分比)。大部分时间都花在了保存到数据库上(比 Oracle RDBMS 快 20-40 倍)。
【讨论】:
【讨论】: