[hibernate-dev] Problem setting the package name using Hibernate Tools.

Sri Gowri gowri_sri at yahoo.com
Tue May 27 14:55:02 EDT 2008


Hi,

I am experiencing a problem with the package name declaration during pojo and mapping generation with Hibernate Tools without using Ant.

hibernate.cfg.xml:


<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate
Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">


<hibernate-configuration>


  <session-factory name="session1">


    <property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>


    <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>


    <property name="hibernate.connection.url">jdbc:derby://localhost:1527/travel</property>


    <property name="hibernate.connection.username">travel</property>


    <property name="hibernate.connection.password">travel</property>


  </session-factory>


</hibernate-configuration>


hibernate.reveng.xml:


<?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">


<hibernate-reverse-engineering>


  <table-filter exclude="false" match-catalog=".*" match-name="FLIGHT" match-schema=".*"/>


  <table-filter exclude="false" match-catalog=".*" match-name="PERSON" match-schema=".*"/>


  <table-filter exclude="false" match-catalog=".*" match-name="TRIP" match-schema=".*"/>


  <table-filter exclude="false" match-catalog=".*" match-name="TRIPTYPE" match-schema=".*"/>


</hibernate-reverse-engineering>



Code that generates pojos and mapping files:

try {
                cfg = new JDBCMetaDataConfiguration();
                OverrideRepository or = new OverrideRepository();
                InputStream xmlInputStream = new FileInputStream(FileUtil.toFile(revengFile));
                xmlHelper = new XMLHelper();
                entityResolver = XMLHelper.DEFAULT_DTD_RESOLVER;
                List errors = new ArrayList();

                SAXReader saxReader = xmlHelper.createSAXReader("XML InputStream", errors, entityResolver);
                org.dom4j.Document doc = saxReader.read(new InputSource(xmlInputStream));
                Configuration c = cfg.configure(confFile);
                cfg.setReverseEngineeringStrategy(or.getReverseEngineeringStrategy(new DefaultReverseEngineeringStrategy()));
                cfg.readFromJDBC();
            } catch (Exception e) {
                Exceptions.printStackTrace(e);
            }

            // Generating POJOs
            FileObject pkg;
            try {
                pkg = SourceGroups.getFolderForPackage(helper.getLocation(), helper.getPackageName());
                File outputDir = FileUtil.toFile(pkg);
                POJOExporter exporter = new POJOExporter(cfg, outputDir);
                exporter.getProperties().setProperty("jdk", new Boolean(helper.getJavaSyntax()).toString());
                exporter.getProperties().setProperty("ejb3", new Boolean(helper.getEjbAnnotation()).toString());
                exporter.start();
            } catch (IOException ex) {
                Exceptions.printStackTrace(ex);
            }

            // Generate Mappings
            try {
                pkg = SourceGroups.getFolderForPackage(helper.getLocation(), helper.getPackageName());                
                File outputDir = FileUtil.toFile(pkg);
                HibernateMappingExporter exporter = new HibernateMappingExporter(cfg, outputDir);                
                exporter.start();
            } catch (Exception e) {
                Exceptions.printStackTrace(ex);
            }

in the code outputDir is 
C:\Documents and Settings\gowri\MyDocuments\NetBeansProjects\WebApplication57\src\java\Travel.

But the generated pojo and mapping files don't contain package as Travel .

// default package
// Generated May 27, 2008 12:45:56 AM by Hibernate Tools 3.2.1.GA


import java.util.Date;

/**
 * Person generated by hbm2java
 */
public class Person  implements java.io.Serializable {


     private int personid;
     private String name;
     private String jobtitle;
     private Short frequentflyer;
     private Date lastupdated;

    public Person() {
    }

    
    public Person(int personid) {
        this.personid = personid;
    }
    public Person(int personid, String name, String jobtitle, Short frequentflyer, Date lastupdated) {
       this.personid = personid;
       this.name = name;
       this.jobtitle = jobtitle;
       this.frequentflyer = frequentflyer;
       this.lastupdated = lastupdated;
    }


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<!-- Generated May 27, 2008 12:45:57 AM by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>

<class name="Person" table="PERSON" schema="TRAVEL">
    <id  name="personid" type="int">
    


class name should be Travel.Person. 

Wondering why tools is not setting the package right ?

Secondly, even though I have defined the HibernateReverseEngineeringStrategy, why tools is generating pojos and mapping files for all the tables in the db ? (Note:I have listed only selected tables in the hibernate.reveng.xml).




      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hibernate-dev/attachments/20080527/7e6d9a63/attachment.html 


More information about the hibernate-dev mailing list