[hibernate-issues] [Hibernate-JIRA] Created: (HBX-749) Reverse engineer of many-to-many association MySQL) does not put table attribute in hbm.xml file

Vaughn Butt (JIRA) noreply at atlassian.com
Wed Sep 6 07:10:24 EDT 2006


Reverse engineer of many-to-many association MySQL) does not put table attribute in hbm.xml file
------------------------------------------------------------------------------------------------

         Key: HBX-749
         URL: http://opensource.atlassian.com/projects/hibernate/browse/HBX-749
     Project: Hibernate Tools
        Type: Bug

  Components: reverse-engineer  
    Versions: 3.2beta7    
 Environment: Hibernate : 3.2.0.cr4
Hibernate Tools : 3.2.0.beta7
MySQL database : 5.0.24-community-nt via TCP/IP
MySQL Connector : mysql-connector-java-3.1.13-bin.jar
Eclipse : 3.2
    Reporter: Vaughn Butt
    Priority: Minor
 Attachments: Person.hbm.xml, Role.hbm.xml, linktest_ddl.sql

The problem appears to be that the hbm.xml file generated for two classes that have a Many-To-Many relationship does not include the attribute for the link (aka association) table name.

see http://forum.hibernate.org/viewtopic.php?t=964363

When I tried to navigate across the association using the generated hbm.xml file I got this stack trace (snipped):

WARNING: SQL Error: 1146, SQLState: 42S02
5/09/2006 14:00:24 org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: Table 'blah.enginemodels' doesn't exist
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not initialize a collection: [com.acme.model.ChassisModel.engineModels#1]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)


When I added the table="<linktablename>" attribute to the "set" element the navigation succeeded.

        <set name="roles" inverse="true" table="lt_role_person">
            <key>
                <column name="person_pkid" not-null="true">
                    <comment></comment>
                </column>
            </key>
            <many-to-many entity-name="nz.co.linktest.model.Role">
                <column name="role_pkid" not-null="true">
                    <comment></comment>
                </column>
            </many-to-many>
        </set>


I don't think the stuff in the log is related but I could be wrong so...
The file workspace\org.hibernate.eclipse.console\hibernate-tools.log had something like

2006-09-02 17:59:32,812 0      [       Worker-5] WARN  ibernate.cfg.reveng.JDBCReader  - The JDBC driver didn't report any primary key columns in lt_e_model_c_model. Asking rev.eng. strategy
2006-09-02 17:59:32,812 0      [       Worker-5] WARN  ibernate.cfg.reveng.JDBCReader  - Rev.eng. strategy did not report any primary key columns for lt_e_model_c_model
2006-09-02 18:09:08,093 575281 [       Worker-1] WARN  ibernate.cfg.reveng.JDBCReader  - The JDBC driver didn't report any primary key columns in lt_e_model_c_model. Asking rev.eng. strategy
2006-09-02 18:09:08,109 575297 [       Worker-1] WARN  ibernate.cfg.reveng.JDBCReader  - Rev.eng. strategy did not report any primary key columns for lt_e_model_c_model
2006-09-03 08:03:53,718 0      [       Worker-9] WARN  ibernate.cfg.reveng.JDBCReader  - The JDBC driver didn't report any primary key columns in lt_e_model_c_model. Asking rev.eng. strategy
2006-09-03 08:03:53,750 32     [       Worker-9] WARN  ibernate.cfg.reveng.JDBCReader  - Rev.eng. strategy did not report any primary key columns for lt_e_model_c_model
2006-09-03 16:01:57,687 0      [       Worker-3] WARN  ibernate.cfg.reveng.JDBCReader  - The JDBC driver didn't report any primary key columns in lt_e_model_c_model. Asking rev.eng. strategy
2006-09-03 16:01:58,125 438    [       Worker-3] WARN  ibernate.cfg.reveng.JDBCReader  - Rev.eng. strategy did not report any primary key columns for lt_e_model_c_model
2006-09-03 16:05:27,312 209625 [       Worker-3] WARN  ibernate.cfg.reveng.JDBCReader  - The JDBC driver didn't report any primary key columns in lt_e_model_c_model. Asking rev.eng. strategy
2006-09-03 16:05:27,406 209719 [       Worker-3] WARN  ibernate.cfg.reveng.JDBCReader  - Rev.eng. strategy did not report any primary key columns for lt_e_model_c_model

where lt_e_model_c_model is like the name of the link table that the reveng originally "failed" on.  Interestingly there does not seem to be any similar log entries for the attached example.


The file workspace\org.hibernate.eclipse.console\hibernate-console.xml-8 had something (some other stuff removed) like 
<?xml version="1.0" encoding="UTF-8"?><hibernate-console><configuration name="Linktest"><hibernate-config-xml location="/Linktest/src/hibernate.cfg.xml"/><classpath><path location="/Linktest/bin"/><path location="/Linktest/lib/mysql-connector-java-3.1.13-bin.jar"/></classpath></configuration></hibernate-console>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira




More information about the hibernate-issues mailing list