我正在將 XSD 模式轉(zhuǎn)換為帶有 HyperJaxb3 的 Hibernate 的 Java 注釋 bean。到目前為止,我設(shè)法生成了 Java 對象,但是我需要自定義 OperableType 的備注字段,因為默認生成的長度是 255,我需要將其擴展到 4000。這是相關(guān) xsd 模式的片段:<xs:complexType name="OperableType" abstract="true"> <xs:annotation> <xs:documentation xml:lang="en">OperableType contains all the elements and attributes common to all the operables. This is an abstract type, so no element of this type will be present in the XML. The logical ID is a unique logical identifier of a sanctioned entity, of a regulation or of a detail of a sanction entity. This information is also provided to external actors for help, especially when entity multiple aliases make it difficult the identification task. For entities imported from previous database, the old value is retained.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="remark" type="fsdexport:UnlimitedTextType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="additionalInformation" type="fsdexport:AdditionalInfoType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="logicalId" type="xs:long" use="required"/></xs:complexType><xs:simpleType name="UnlimitedTextType"> <xs:restriction base="xs:string"/></xs:simpleType>我無法修改 XSD 架構(gòu)或收到的 XML 文件,因此我需要自定義綁定以使其正常工作。我嘗試使用此綁定 <jxb:bindings node="xs:complexType[@name='OperableType']"> <jxb:bindings node="xs:sequence//xs:element[@name='remark']"> <hj:basic> <orm:column length="4000" /> </hj:basic> </jxb:bindings> </jxb:bindings>但它不會修改生成代碼中的長度。@ElementCollection@OrderColumn(name = "HJINDEX")@Column(name = "HJVALUE", length = 255)@CollectionTable(name = "OPERABLE_TYPE_REMARK", joinColumns = { @JoinColumn(name = "HJID")})public List<String> getRemark() {我還嘗試使用 'hj:default-single-property' 來自定義 UnlimitedTextType,但我也沒有設(shè)法讓它工作。
1 回答

倚天杖
TA貢獻1828條經(jīng)驗 獲得超3個贊
從源頭尋求幫助后, https://github.com/highsource/hyperjaxb3/issues/54,我得到了答案:
<jxb:bindings node="xs:complexType[@name='OperableType']">
<jxb:bindings node="xs:sequence//xs:element[@name='remark']">
<hj:element-collection>
<orm:column length="4000" />
</hj:element-collection>
</jxb:bindings>
</jxb:bindings>
關(guān)鍵是你使用 hj:element-collection 而不是 hj:basic 作為 xml 序列。
添加回答
舉報
0/150
提交
取消