hyperjaxb3 xsd: длина строки в сущности JPA - PullRequest
1 голос
/ 13 сентября 2010

Я использую Hyperjaxb3 для создания сущностей JPA из схемы XSD. У меня есть тип 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: maxLength на xsd: simpleType, JPA @ Column.length будет иметь значение maxLength. Как я могу установить xsd: rescriction для xsd: simpleContent, то есть xsd: расширение xsd: string? Должен ли я определить complexType с xsd: resctriction, который я буду расширять? И если да, 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) длину столбца для данного типа (каким-то образом дать знать hyperjaxb, что это форма, которую я хочу использовать для моего конкретного типа)? Или это совсем не так, и следует использовать xsd: maxLength (выше) Мне удалось установить его глобально для настройки Hyperjaxb:

Спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 21 сентября 2010

Второй вопрос: да, вы можете настроить глобальные сопоставления типов для простых типов.

См. Индивидуальная настройка для каждого типа .

1 голос
/ 21 сентября 2010

Первый вопрос: кажется, что это ошибка / отсутствующая функция, пожалуйста, сообщите о проблеме здесь .

...