2015-12-03 2 views
1

Я сгенерированные .java классы от hyperjax3 которые уже аннотированный с аннотациями, как @Entity и @Table и т.д ..»использовать полностью квалифицированные имена в hyperjaxb3 созданных классов Java

В @Entity имя класса автоматически добавляется следующим образом: @Entity(name = "MyClassName") Но я хочу, чтобы это поле имя, чтобы иметь полное имя класса, как
@Entity(name = "myPackage.here.MyClassName") Я использую hyperjaxb3-ejb-samples-po-initial-0.5.6 пример и генерации аннотированный java классы, запустив mvn clean install где мои схемы XSD присутствуют в папке src\main\resources в проекте maven.

* Я нашел и нашел способ, который указывает, что использовать auto-import = false, но я не могу включить это, поскольку я просто запускаю этот проект maven.

+0

Пожалуйста, обратитесь [здесь] (http: // stac koverflow.com/questions/2572576/hyperjaxb-entity/3184360#comment55884010_3184360) для аналогичной проблемы! –

ответ

1

Отказ от ответственности: Я являюсь автором 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:

Смотрите также:

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

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