Как создать метамодель JPA 2.0?



в духе безопасности типа, связанного с CriteriaQuery JPA 2.0 также имеет API для поддержки Метамодель представительства субъектов.



кто-нибудь знает о полнофункциональной реализации этого API (для создания метамодели, а не для создания классов метамодели вручную)? Было бы здорово, если кто-то и знает шаги настройки в Eclipse (я предполагаю, что это так же просто, как настройка обработчика, но никогда не знаешь).



изменить:
Просто наткнулся Hibernate JPA 2 Metamodel Generator . Но проблема остается, так как я не могу найти никаких ссылок для загрузки jar.



редактировать 2:
Прошло некоторое время с тех пор, как я задал этот вопрос, но я думал, что вернусь и добавлю ссылку на Hibernate JPA Model Generator project на SourceForge

745   5  

5 ответов:

было бы здорово, если кто-то также знает шаги для настройки этого в Eclipse (я предполагаю, что это так же просто, как настройка процессора аннотаций, но вы никогда не знаете)

пересмотрено (март / 2014)

пожалуйста, взгляните на jpa-metamodels-with-maven

Hibernate

наиболее рекомендуется использовать Hibernate.

(я не осуждаю какие-либо функции/функции/полезностей/stabilites на этих реализаций. И приведенное выше утверждение сосредоточено только на использовании maven, которое я построил.)

<plugin>
  <groupId>org.bsc.maven</groupId>
  <artifactId>maven-processor-plugin</artifactId>
  <executions>
    <execution>
      <id>process</id>
      <goals>
        <goal>process</goal>
      </goals>
      <phase>generate-sources</phase>
      <configuration>
        <processors>
          <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
        </processors>
      </configuration>
    </execution>
  </executions>
  <dependencies>
    <dependency>        
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-jpamodelgen</artifactId>
      <version>4.3.4.Final</version>
    </dependency>
  </dependencies>
</plugin>

OpenJPA

объектом openjpa, кажется, требуют дополнительных элементов <openjpa.metamodel>true<openjpa.metamodel>.

<plugin>
  <groupId>org.bsc.maven</groupId>
  <artifactId>maven-processor-plugin</artifactId>
  <executions>
    <execution>
      <id>process</id>
      <goals>
        <goal>process</goal>
      </goals>
      <phase>generate-sources</phase>
      <configuration>
        <processors>
            <processor>org.apache.openjpa.persistence.meta.AnnotationProcessor6</processor>
        </processors>
        <optionMap>
          <openjpa.metamodel>true</openjpa.metamodel>
        </optionMap>
      </configuration>
    </execution>
  </executions>
  <dependencies>
    <dependency>
      <groupId>org.apache.openjpa</groupId>
      <artifactId>openjpa</artifactId>
      <version>2.3.0</version>
    </dependency>
  </dependencies>
</plugin>

EclipseLink

EclipseLink требует persistence.xml.

<plugin>
  <groupId>org.bsc.maven</groupId>
  <artifactId>maven-processor-plugin</artifactId>
  <executions>
    <execution>
      <id>process</id>
      <goals>
        <goal>process</goal>
      </goals>
      <phase>generate-sources</phase>
      <configuration>
        <processors>
          <processor>org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor</processor>
        </processors>
      </configuration>
    </execution>
  </executions>
  <dependencies>
    <dependency>
      <groupId>org.eclipse.persistence</groupId>
      <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
      <version>2.5.1</version>
    </dependency>
  </dependencies>
</plugin>

========================================

для пользователей Apache Maven,

следующая простая конфигурация кажется работой. (со старым Maven-компилятор-плагин; обновлено.)

<!-- This method doesn't work with newest maven-compiler-plugin -->
<!-- But if it's ok to work with old maven-compiler-plugin -->
<!-- This is the best method -->
<!-- There is no other required configurations -->
<!-- We don't even require to config any processor names -->

<project>
  <build>

    <extensions>
      <extension>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-jpamodelgen</artifactId>
        <version>1.3.0.Final</version>
      </extension>
    </extensions>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.5.1</version> <!-- this is critical -->
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>

    </plugins>
  </build>
</project>

вы можете запустить его с помощью "mvn compiler: compile"

обновление

обратите внимание, что это метод работает только с теми старыми Мейвен-плагин компилятора. Проверьте версию в коде.

поддержка JPA 2.0 Eclipse через Dali (которая включена в "Eclipse IDE для разработчиков JEE") имеет свой собственный генератор метамодели, интегрированный с Eclipse.

  1. выберите свой проект в "Проводник Пакетов"
  2. на свойства ->JPA

для eclipselink достаточно только следующей зависимости для создания метамодели. Больше ничего не нужно.

    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
        <version>2.5.1</version>
        <scope>provided</scope>
    </dependency>

для гибернации в качестве поставщика, который является наиболее распространенным IMHO:

в случае инструментов сборки, таких как Gradle, Maven вам нужно иметь Hibernate JPA 2 Metamodel Generator jar в пути к классам и уровне компилятора>=1.6 это все, что вам нужно построить проект, и метамодель будет сгенерирована автоматически.

в случае интегрированной среде разработки Eclipse 1. перейти проект- > свойства - > компилятор Java - > обработка аннотаций и включить его. 2. Разверните обработка аннотаций - >путь к заводу-> добавить внешнюю банку добавить Hibernate JPA 2 Metamodel Generator jar проверьте недавно добавленную банку и скажите "ОК". Чистый и построить сделано!

ссылка гибернации СПД 2 Метамодель генератор банку ссылке из репозитория Maven https://mvnrepository.com/artifact/org.hibernate/hibernate-jpamodelgen

Comments

    Ничего не найдено.