2010-09-13 81 views
1

我使用Hyperjaxb3從XSD模式生成JPA實體。我有一個XSD:我想使用說明文本(文本區域在UI)字符串類型:hyperjaxb3 xsd:JPA實體中的字符串長度

<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:maxLength限制放在xsd:simpleType上,JPA @ Column.length的值爲maxLength。我如何在xsd:simpleContent上設置xsd:rescriction,它是xsd:xsd:string的擴展名?我是否必須定義一個帶有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文件)列的給定類型的lenght(設置莫名其妙讓hyperjaxb知道這是我想用於我的特定類型的orm)?或者是完全脫離的方式和xsd:最大長度應爲(以上)使用我設法全局設置它Hyperjaxb定製:

感謝您的幫助。

回答

1

第一個問題:它似乎是一個錯誤/丟失的功能,請提出問題here