2017-01-09 63 views
0

我使用Spring的引导,我想在的IntelliJ数据库模式生成Java注释类。生成数据库架构的Java类,而不会持久单元

我去Persistence -> Generate Persistence Mapping -> By Database Schema但我不能产生类,因为我还没有persistence.xml文件,所以我得到的错误:

JPA annotation mappings require at least one Persistence Unit

我在春天引导很......怎么能我这么做?

回答

1

如果您使用的是Maven,可以使用hibernate3-maven-plugin以及.reveng.xml文件和Hibernate连接属性来完成。

这是从博客的部分采取了一个例子,我在几个月前发表在:http://tech.asimio.net/2016/08/04/Integration-Testing-using-Spring-Boot-Postgres-and-Docker.html#generating-jpa-entities-from-database-schema

的pom.xml

... 
<properties> 
... 
    <postgresql.version>9.4-1206-jdbc42</postgresql.version> 
... 
</properties> 
... 
<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>hibernate3-maven-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <components> 
     <component> 
      <name>hbm2java</name> 
      <implementation>jdbcconfiguration</implementation> 
      <outputDirectory>target/generated-sources/hibernate3</outputDirectory> 
     </component> 
     </components> 
     <componentProperties> 
     <revengfile>src/main/resources/reveng/db_dvdrental.reveng.xml</revengfile> 
     <propertyfile>src/main/resources/reveng/db_dvdrental.hibernate.properties</propertyfile> 
     <packagename>com.asimio.dvdrental.model</packagename> 
     <jdk5>true</jdk5> 
     <ejb3>true</ejb3> 
     </componentProperties> 
    </configuration> 
    <dependencies> 
    <dependency> 
     <groupId>cglib</groupId> 
     <artifactId>cglib-nodep</artifactId> 
     <version>2.2.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.postgresql</groupId> 
     <artifactId>postgresql</artifactId> 
     <version>${postgresql.version}</version> 
    </dependency>    
    </dependencies> 
</plugin> 
... 

db_dvdrental.reveng.xml

... 
<hibernate-reverse-engineering> 
    <schema-selection match-schema="public" /> 
</hibernate-reverse-engineering> 

db_dvdrental.hibernate.prop ERTIES

hibernate.connection.driver_class=org.postgresql.Driver 
hibernate.connection.url=jdbc:postgresql://localhost:5432/db_dvdrental 
hibernate.connection.username=user_dvdrental 
hibernate.connection.password=changeit 

生成实体

mvn hibernate3:hbm2java 

JPA实体在靶/生成来源/ Hibernate3中产生的并需要被复制到的src /主/ JAVA所得到的封装。

再次,http://tech.asimio.net/2016/08/04/Integration-Testing-using-Spring-Boot-Postgres-and-Docker.html提供了更好的说明和演示源代码来完成从现有模式生成JPA实体。