【问题标题】:From xsd to database. How?从 xsd 到数据库。如何?
【发布时间】:2015-09-18 04:54:58
【问题描述】:

我的主要目标是加载 ISO19115-2 的 xml 并将其存储到数据库中。

有了这个Generate hibernate entity beans from XSD,我创建了所有类,我可以读取xml并在Java中解组。

现在我想做的是生成数据库模式(NB 有 900 多个类)。

我认为解决方案可能是使用休眠将对象映射和存储到数据库中。

我已经创建了 hbm.xml 映射文件,但是 hibernate 不喜欢它们,给出如下错误:

org.hibernate.MappingException: Foreign key (FK9C4C4E4C6991863A:DIRECTPOSITIONTYPE [LOWERCORNER])) must have same number of columns as the referenced primary key (ENVELOPETYPE [LOWERCORNER,idx])

这样的错误数以千计。

有 jaxb 注释的类,还有其他方法来获取数据库模式吗?

另请注意,使用 http://xsd2db.sourceforge.net/ 之类的工具不是解决方案,因为我想从 java 加载 xml,并且无法手动为所有类创建映射。

【问题讨论】:

    标签: java xml hibernate xsd jaxb


    【解决方案1】:

    作者在这里。

    我非常了解 ISO 19115 架构,我绝对不建议将这些文档的 XML 实例保存在关系数据库中。几年前,我开发了一个地理元数据管理产品,它(除其他外)正是这样做的(将 ISO 19115 保存在关系数据库中),而现在,几年后我真的要说 - 这不是正确的设计.

    当时我确实设法让 Hyperjaxb 为 ISO 19115 模式工作,所以原则上这是可行的。但我终于发现,将 ISO 19115 数据结构性地保存在规范化的数据库模式中并没有多大意义。 ISO 19115 文档通常通过使用过滤器编码作为查询语言的 CSW 接口访问。过滤器编码主要使用基于“属性”的表达式(ogc:PropertyIsLike 等)。因此,在支持的属性上为每个 XML 实例编制索引最终要好得多。为此,您实际上并不需要 ISO 19115 数据的结构化存储。

    我想这并不能回答你的问题,但我去过那里,做过,我不会按照你的意愿去做。

    【讨论】:

    • 事实上,这可以回答很多问题。谢谢。
    猜你喜欢
    • 2010-09-13
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 2014-02-13
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多