我有一个入站xml,我使用xjc工具映射到JAXB对象(构建pojos)
我想知道将这些对象映射到各种表的最佳方法是什么。
一个Object / Xml可以映射到多个表,我认为这些表规则是hibernate。作为一个基本的解决方案,我相信我需要在某种程度上注释对象中的字段(通过xsd中的标签?我不知道)到数据库列名。
有没有人遇到过这个?
谢谢
答案 0 :(得分:8)
我猜你需要Hyperjaxb3为JAXB对象提供关系持久性。
@lexicore是关于这个项目的作者。
答案 1 :(得分:2)
您可以使用xjc
的扩展程序 - hyperjaxb
为此,hyperjaxb3
将更可取。
以下是一些教程Generate JPA Java classes from XSD schema file using Maven
的链接答案 2 :(得分:2)
答案 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倍)。