2013-10-26 5 views
0

Я использую HYPERJAXB-3 - привычный-toplink и сталкиваясь с двумя проблемами. Пожалуйста, предоставьте свои предложения для решения.HYPERJAXB - увеличение длины столбца DTYPE и имя_таблицы очень длинное

моих элементы XML: Eg: GeneralPref.CustomPref.Tradepref

1) Таблица/название ограничения генерируются с очень длительным именем (поддержка оракула только 30 символов) из-за мой XML-элемент и его суб элемент, имеющим длительное имя Например: CREATE TABLE DOCUMENTMANAGEMENT_TRADESERVICEUTILITYSETUP()

Как изменить формат имени таблицы?

2) Автоматический столбец таблицы «DTYPE» максимальный размер 31 согласно http://java.sun.com/xml/ns/persistence/orm xsd. При выполнении задания я получил сообщение «Ошибка». 3) Как я могу изменить, что размер 'DTYPE' колонка через persisence.properties или какой-либо другой configutaion

Внутренняя Исключение: java.sql.SQLException: ORA-12899:. Значение слишком велико для столбца "TEST" "DMTRADINGPARTNERSETUP" . «DTYPE» (фактический: 40, максимум: 31)

Пожалуйста, сделайте необходимое.

ответ

0

Я встретил те же проблемы.

Для ваших первых вопросов, я думаю, вы можете добавить настраиваемый файл bingding.xjb, который настроит ваше имя столбца менее 30 длины.

например. добавить

<xmlns:hj="http://hyperjaxb3.jvnet.org/ejb/schemas/customizations" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" jaxb:extensionBindingPrefixes="hj orm">

в глобальных привязок

<jaxb:bindings node="xs:complexType[@name='xxxx']//xs:element[@name='xxx']">

`<hj:basic>` 

    `<orm:column name="xxxx" length="1000"/>` 
`</hj:basic>` 

</jaxb:bindings>

Однако, для вашего второго вопроса, я не понял это, так как я не» t знать, где настроить DTYPE, поскольку DTYPE генерируется гиперяксом, а не оригинальный XSD.

0

Чтобы увеличить длину DTYPE, вы можете также настроить его в bindings.xjb

например.

JAXB: привязок узел = "хз: ComplexType [@ имя = 'хххх']">

<hj:entity> 
    <orm:discriminator-column length="127"/> 
</hj:entity> 

/JAXB: привязок>

примечание: HJ: сущность> должны быть включены в xsd complextype, а не элемент.

Извините, я не знаю, в чем проблема, когда я добавляю '<' + 'j', это слово будет невидимым.

Смежные вопросы