[jboss-user] [JBoss Tools] - Re: how can I reverse engineer and create POJOs from an existing database?

John Citizen do-not-reply at jboss.com
Thu Mar 7 23:49:46 EST 2013


John Citizen [https://community.jboss.org/people/johnqcitizen] created the discussion

"Re: how can I reverse engineer and create POJOs from an existing database?"

To view the discussion, visit: https://community.jboss.org/message/801478#801478

--------------------------------------------------------------
You don't have to use eclipse plugins here. You can also use the hibernate plugin for maven, and generate mapping files and POJOs from the command line.

You would define a pom.xml file as follows (I've left out some of the normal POMN stuff here) :

<project>
  <build>
    <plugins>
     <plugin>
       <groupId>org.codehaus.mojo</groupId>
       <artifactId>hibernate3-maven-plugin</artifactId>
       <version>2.2</version>
         <configuration>
           <components>
             <component>
               <name>hbm2hbmxml</name>
               <implementation>jdbcconfiguration</implementation>
               <outputDirectory>target/generated-resources/hibernate3</outputDirectory>
             </component>
             <component>
               <name>hbm2java</name>
               <implementation>jdbcconfiguration</implementation>
               <outputDirectory>target/generated-sources/hibernate3</outputDirectory>
             </component>
           </components>
           <componentProperties>
             <revengfile>drc/main/resources/reveng.xml</revengfile>
             <propertyfile>src/main/resources/hibernate.properties</propertyfile>
             <packagename>com.whatever.domain</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>com.oracle</groupId>
             <artifactId>ojdbc</artifactId> 
             <version>11.1.0.6.0</version> 
           </dependency>
         </dependencies>
       </plugin>
    </plugin>
  </build>
</project>

You will need to change the values for the JDBC dependency (I'm using oracle).

You will also need to define a src/main/resources/hibernate.propeties file:

hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.connection.url=jdbc:oracle:thin:@<server>:<port>:<instance>
hibernate.connection.username=<username>
hibernate.connection.password=<password>

using suitable values for <server>, <port>, etc.

And a src/main/resources/reveng.xml file to define your reverse engineering strategy, e.g.

?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC 
  "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" 
  " http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >

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

This specifies that only tables in the MY_SCHEMA schema are used for generating POJOs.

Then run the following from the command line to generate POJOs with annotations:

$ mvn hibernate3:hbm2java

If you want to generate mapping files and POJOs without annotations, change the <ejb3> tag in the pom.xm to the following:

  <ejb3>false</ejb3>

then run the following:

  $ mvn hibernate3:hbm2hbmxml
   $ mvn hibernate3:hbm2java

This is just a taster. You will need to look up additional information to get this working.

Hope that helps.
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/801478#801478]

Start a new discussion in JBoss Tools at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2128]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20130307/1ed86b98/attachment-0001.html 


More information about the jboss-user mailing list