0

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 中添加什么来实现这个目标?

4

1 回答 1

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默认选择是有原因的。它更安全,更容易处理。

于 2014-03-30T17:55:34.183 回答