Я работаю над проектом по импорту пакета xml в базу данных mysql. Я нашел инструмент hyperjaxb3, который работает как плагин maven и генерирует классы java с аннотациями jpa/jaxb, которые я могу использовать для маршалинга xml и всасывания его, но он создает свое собственное поле первичного ключа. Как мне избавиться от этого в пользу поля, существующего в схеме?
Как сообщить Hyperjaxb3, что использовать в качестве первичного ключа?
Ответы (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
Спасибо за ответ! после того, как я спросил об этом, я обнаружил, что мне пришлось переключиться с hyperjaxb и самостоятельно разобрать xml из-за изменения дизайна проекта.
- person specialK; 13.08.2013