Как сообщить Hyperjaxb3, что использовать в качестве первичного ключа?

Я работаю над проектом по импорту пакета xml в базу данных mysql. Я нашел инструмент hyperjaxb3, который работает как плагин maven и генерирует классы java с аннотациями jpa/jaxb, которые я могу использовать для маршалинга xml и всасывания его, но он создает свое собственное поле первичного ключа. Как мне избавиться от этого в пользу поля, существующего в схеме?


person specialK    schedule 06.07.2013    source источник


Ответы (1)


Это описано в документации https://java.net/projects/hyperjaxb/sources/svn/content/trunk/www/doc/reference/en/pdf/reference.pdf

В частности, раздел, указанный ниже:

2.2.2.1. Настройка свойства идентификатора Свойство идентификатора можно настраивать. Вместо создания нового свойства idInternal вы можете заставить Hyper-JAXB использовать существующее свойство в качестве идентификатора. Для этого включите @hyperjaxb.hibernate.id в аннотацию свойства javadoc (из простого теста):

<xsd:complexType name="EntryType"> <xsd:sequence><!-- ... --></xsd:sequence> >
<xsd:attribute name="id" type="xsd:string"> <xsd:annotation> <xsd:appinfo>
<jaxb:property>     
<jaxb:javadoc> @hyperjaxb.hibernate.id unsaved-value="null" generator-class="uuid.hex"

</jaxb:javadoc>
</jaxb:property>
</xsd:appinfo>
</xsd:annotation> </xsd:attribute> </xsd:complexType>

Если вы используете генератор идентификаторов, который необходимо параметризовать, включите необходимые параметры в @hyperjaxb.hibernate.generator-param.

person user2643726    schedule 01.08.2013
comment
Спасибо за ответ! после того, как я спросил об этом, я обнаружил, что мне пришлось переключиться с hyperjaxb и самостоятельно разобрать xml из-за изменения дизайна проекта. - person specialK; 13.08.2013