1

Hyperjaxb3を使用して、XSDスキーマからJPAエンティティを生成します。説明テキスト(UIのテキスト領域)に使用するxsd:stringタイプがあります。

<xsd:complexType name="Description">
    <xsd:simpleContent>
        <xsd:extension base="**xsd:string**">
            <xsd:attribute name="abc" type="xsd:NCName" use="optional" />
        </xsd:extension>
    </xsd:simpleContent>
</xsd:complexType>

Hyperjaxb3は、次のように注釈が付けられた属性値を持つクラス(エンティティ)の説明を生成します。

@Basic
@Column(name = "VALUE_", **length = 255**)
public String getValue() {
    return value;
}

私が持っている質問:

xsd:simpleTypeにxsd:maxLength制限を設定すると、JPA@Column.lengthの値がmaxLengthになることがわかりました。xsd:stringのxsd:extensionであるxsd:simpleContentにxsd:rescrictionを設定するにはどうすればよいですか?拡張するxsd:resctrictionを使用してcomplexTypeを定義する必要がありますか?はいの場合、Hyperjaxbは私の制限により@Column.lengthを生成しますか。私は次のことを試みました:

   <xsd:simpleType name="DescriptionParent">
  <xsd:restriction base="xsd:string">
            <xsd:maxLength value="4096" />
  </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="Description">
        <xsd:simpleContent>
            <xsd:extension base="DescriptionParent">
                <xsd:attribute name="abc" type="xsd:NCName" use="optional" />
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>

ただし、JPA列の長さは255のままです。

JAXBカスタマイズ(* .xjbファイル)で特定のタイプの列の長さを設定することもできますか(これが特定のタイプに使用したいormであることをhyperjaxbに通知してください)?または、それは完全に邪魔にならず、xsd:maxLengthを使用する必要があります(上記)Hyperjaxbのカスタマイズのためにグローバルに設定することができました:

ご協力いただきありがとうございます。

4

2 に答える 2

2

2番目の質問:はい、単純型のグローバル型マッピングを構成できます。

単一のプロパティのタイプごとのカスタマイズを参照してください。

于 2010-09-21T14:10:55.650 に答える
1

最初の質問:これはバグ/欠落している機能のようです。ここで問題を報告してください。

于 2010-09-21T14:34:33.920 に答える