Отказ от ответственности: Я являюсь автором Hyperjaxb3.
Имя объекта не настраивается, но вы можете реализовать свою собственную стратегию именования для генерации полных имен объектов.
Для этого вам необходимо будет impement интерфейс org.jvnet.hyperjaxb3.ejb.strategy.naming.Naming
. Проще всего было бы подкласс org.jvnet.hyperjaxb3.ejb.strategy.naming.impl.DefaultNaming
и переопределить метод getEntityName
:
public String getEntityName(Mapping context, Outline outline, NType type) {
final JType theType = type.toType(outline, Aspect.EXPOSED);
assert theType instanceof JClass;
final JClass theClass = (JClass) theType;
return CodeModelUtils.getPackagedClassName(theClass);
}
Вы также должны включать в себя org\jvnet\hyperjaxb3\ejb\plugin\custom\applicationContext.xml
ресурс для настройки пользовательской стратегии именования:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean name="naming" class="com.acme.foo.CustomNaming">
<property name="reservedNames" ref="reservedNames"/>
</bean>
</beans>
Наконец, скомпилировать все , упаковать как JAR и добавить к классам HJ3, например, с помощью зависимостей плагинов в Maven POM:
<plugin>
<groupId>org.jvnet.hyperjaxb3</groupId>
<artifactId>maven-hyperjaxb3-plugin</artifactId>
<configuration>...</configuration>
<dependencies>
<dependency>
<groupId>com.acme.foo</groupId>
<artifactId>hyperjaxb3-custom-naming-extension</artifactId>
<version>...</version>
</dependency>
</dependencies>
</plugin>
Вот тестовый проект, который реализует/настраивает пользовательское именование stratgy:
Смотрите также:
Пожалуйста, обратитесь [здесь] (http: // stac koverflow.com/questions/2572576/hyperjaxb-entity/3184360#comment55884010_3184360) для аналогичной проблемы! –