什么是修改调用:hbm2java生成过程中的POJO的文件名的最简单方法
-
26-09-2019 - |
题
我使用调用:hbm2java通过Maven来生成的POJO,它会产生的文件,如Table.java,但我要的是AbstractTable.java
有没有一种简单的方法来做到这一点?
从我的pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>hbm2hbmxml</id>
<phase>generate-sources</phase>
<goals>
<goal>hbm2hbmxml</goal>
</goals>
<configuration>
<components>
<component>
<name>hbm2hbmxml</name>
<outputDirectory>src/main</outputDirectory>
</component>
</components>
<componentProperties>
<revengfile>src/conf/reveng.xml</revengfile>
<propertyfile>src/conf/hibernate.properties</propertyfile>
<templatepath>src/conf/hibernate-templates</templatepath>
<jdk5>true</jdk5>
</componentProperties>
</configuration>
</execution>
<execution>
<id>hbm2cfgxml</id>
<phase>generate-sources</phase>
<goals>
<goal>hbm2cfgxml</goal>
</goals>
<configuration>
<components>
<component>
<name>hbm2cfgxml</name>
<outputDirectory>src/main</outputDirectory>
</component>
</components>
<componentProperties>
<revengfile>src/conf/reveng.xml</revengfile>
<propertyfile>src/conf/hibernate.properties</propertyfile>
<templatepath>src/conf/hibernate-templates</templatepath>
<jdk5>true</jdk5>
</componentProperties>
</configuration>
</execution>
<execution>
<id>hbm2java</id>
<phase>generate-sources</phase>
<goals>
<goal>hbm2java</goal>
</goals>
<configuration>
<components>
<component>
<name>hbm2java</name>
<outputDirectory>src/main</outputDirectory>
</component>
</components>
<componentProperties>
<revengfile>src/conf/reveng.xml</revengfile>
<propertyfile>src/conf/hibernate.properties</propertyfile>
<templatepath>src/conf/hibernate-templates</templatepath>
<jdk5>true</jdk5>
<namingstrategy>uk.co.company.product.hibernate.CustomNamingStrategy</namingstrategy>
</componentProperties>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-tools</artifactId>
<version>3.2.3.GA</version>
</dependency>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.8</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>2.1_3</version>
</dependency>
</dependencies>
</plugin>
解决方案
自定义模板似乎是去实现这一目标的方式。 最后,我提取的POJO模板文件的JAR出来,所以我可以对其进行修改,然后使用hbmtemplate对POJO模板和filepattern做到这一点。这是一个有点讨厌,你不能只使用filepattern与hbm2pojo。
下面是我的聚甲醛如果任何人的兴趣:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>hbm2hbmxml</id>
<phase>generate-sources</phase>
<goals>
<goal>hbm2hbmxml</goal>
</goals>
<configuration>
<components>
<component>
<name>hbm2hbmxml</name>
<outputDirectory>src/main</outputDirectory>
</component>
</components>
<componentProperties>
<revengfile>src/conf/reveng.xml</revengfile>
<propertyfile>src/conf/hibernate.properties</propertyfile>
<templatepath>src/conf/hibernate-templates</templatepath>
<jdk5>true</jdk5>
</componentProperties>
</configuration>
</execution>
<execution>
<id>hbm2cfgxml</id>
<phase>generate-sources</phase>
<goals>
<goal>hbm2cfgxml</goal>
</goals>
<configuration>
<components>
<component>
<name>hbm2cfgxml</name>
<outputDirectory>src/main</outputDirectory>
</component>
</components>
<componentProperties>
<revengfile>src/conf/reveng.xml</revengfile>
<propertyfile>src/conf/hibernate.properties</propertyfile>
<templatepath>src/conf/hibernate-templates</templatepath>
<jdk5>true</jdk5>
</componentProperties>
</configuration>
</execution>
<execution>
<id>hbmtemplate0</id>
<phase>generate-sources</phase>
<goals>
<goal>hbmtemplate</goal>
</goals>
<configuration>
<components>
<component>
<name>hbmtemplate</name>
<outputDirectory>src/main</outputDirectory>
</component>
</components>
<componentProperties>
<revengfile>src/conf/reveng.xml</revengfile>
<propertyfile>src/conf/hibernate.properties</propertyfile>
<templatepath>src/conf/hibernate-templates</templatepath>
<jdk5>true</jdk5>
<ejb3>false</ejb3>
<filepattern>{package-name}/Abstract{class-name}.java</filepattern>
<templateprefix>pojo/</templateprefix>
<destdir>src/main</destdir>
<template>pojo/Pojo.ftl</template>
</componentProperties>
</configuration>
</execution>
<execution>
<id>hbmtemplate1</id>
<phase>generate-sources</phase>
<goals>
<goal>hbmtemplate</goal>
</goals>
<configuration>
<components>
<component>
<name>hbmtemplate</name>
<outputDirectory>src/main</outputDirectory>
</component>
</components>
<componentProperties>
<revengfile>src/conf/reveng.xml</revengfile>
<propertyfile>src/conf/hibernate.properties</propertyfile>
<templatepath>src/conf/hibernate-templates</templatepath>
<jdk5>true</jdk5>
<ejb3>false</ejb3>
<filepattern>{package-name}/{class-name}.java</filepattern>
<templateprefix>pojoImpl/</templateprefix>
<destdir>src/main</destdir>
<template>pojoImpl/PojoImpl.ftl</template>
</componentProperties>
</configuration>
</execution>
<execution>
<id>hbmtemplate2</id>
<phase>generate-sources</phase>
<goals>
<goal>hbmtemplate</goal>
</goals>
<configuration>
<components>
<component>
<name>hbmtemplate</name>
<outputDirectory>src/main</outputDirectory>
</component>
</components>
<componentProperties>
<revengfile>src/conf/reveng.xml</revengfile>
<propertyfile>src/conf/hibernate.properties</propertyfile>
<templatepath>src/conf/hibernate-templates</templatepath>
<jdk5>true</jdk5>
<ejb3>false</ejb3>
<filepattern>{package-name}/Abstract{class-name}DAO.java</filepattern>
<templateprefix>dao/</templateprefix>
<destdir>src/main</destdir>
<template>dao/daohome.ftl</template>
<sessionFactoryName>sessionFactoryName.goes.here</sessionFactoryName>
</componentProperties>
</configuration>
</execution>
<execution>
<id>hbmtemplate3</id>
<phase>generate-sources</phase>
<goals>
<goal>hbmtemplate</goal>
</goals>
<configuration>
<components>
<component>
<name>hbmtemplate</name>
<outputDirectory>src/main</outputDirectory>
</component>
</components>
<componentProperties>
<revengfile>src/conf/reveng.xml</revengfile>
<propertyfile>src/conf/hibernate.properties</propertyfile>
<templatepath>src/conf/hibernate-templates</templatepath>
<jdk5>true</jdk5>
<ejb3>false</ejb3>
<filepattern>{package-name}/{class-name}DAO.java</filepattern>
<templateprefix>daoImpl/</templateprefix>
<destdir>src/main</destdir>
<template>daoImpl/daoImpl.ftl</template>
<sessionFactoryName>sessionFactoryName.goes.here</sessionFactoryName>
</componentProperties>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-tools</artifactId>
<version>3.2.3.GA</version>
</dependency>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.8</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>2.1_3</version>
</dependency>
</dependencies>
</plugin>
不隶属于 StackOverflow