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を参照)。段落「1 対 1 としてマッピング」)。

これで問題ありませんが、これにはグローバル構成が必要です。この目標を達成するために bindings.xjb に何を入れればよいか教えてください。

4

1 に答える 1

1

X:1 をデフォルトで 1 対 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 に答える