【问题标题】:HyperJAXB: How to use always @OneToOne instead of @ManyToOneHyperJAXB:如何始终使用 @OneToOne 而不是 @ManyToOne
【发布时间】:2014-03-31 01:55:34
【问题描述】:

HyperJAXB 为 XSD 1:1 关系生成 @ManyToOne 注释,例如:

<xs:element name="typeName" type="otherType" />

<xs:element name="typeName" type="otherType" minOccurs="0" maxOccurs="1" />

这不是预期的行为,因为它应该生成 @OneToOne 注释。好吧,自定义指南描述了您可以通过向每个元素定义添加说明来自定义此行为(请参阅http://confluence.highsource.org/display/HJ3/Making+schema-derived+classes+ready+for+JPA,“一对一映射”段落)。

这很好,但我需要一个全局配置。谁能告诉我,要在 bindings.xjb 中添加什么来实现这个目标?

【问题讨论】:

    标签: java jpa jaxb xsd hyperjaxb


    【解决方案1】:

    您可以默认将 X:1 切换为全局一对一:

    <jaxb:bindings schemaLocation="schema.xsd" node="/xs:schema">
        <hj:persistence>
            <hj:default-to-one>
                <hj:one-to-one/>
            </hj:default-to-one>
        </hj:persistence>
    </jaxb:bindings>
    

    但是请注意,我认为我默认选择@ManyToOne 是有原因的。它更安全,更容易处理。

    【讨论】:

    • 嗨,hj 命名空间的架构是什么?我问是因为我想将这些绑定设置直接添加到 XSD 架构本身中。
    • 非常感谢!要么我知道该项目不在活动开发中,它对于那些首先在 XSD 中建模的人来说真的很棒,就像我在中间件...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多