facebook

Composite key question for Hibernate3 & Myeclipse4.1.1

  1. MyEclipse Archived
  2.  > 
  3. Database Tools (DB Explorer, Hibernate, etc.)
Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #251935 Reply

    barrina
    Member

    Hi,

    I am using Hibernate 3 within MyEclipse 4.1.1. I am new to hibernate and have question about why the MyEclipse is generating all the columns in my table within a composite-id tag and adding a secondary ‘Id’ POJO. I have read a related thread http://www.myeclipseide.com/PNphpBB2+file-viewtopic-t-11684-highlight-compositeid.html, that comes close, but doesn’t really answer my problem.

    Under what circumstances will MyEclipse wrap the tables columns in a composite-id tag? I read previously that it was when the number of columns making the primary key was greater than zero. The table I have entered below as way of an example has 3/5 column that are not null, but no primary key — does MyEclipse infer that as the composite key? What about the remaining two coumns, should they be outside of the compostie-id tag and within the normal POJO rather than the POJOId class.

    This all seems a bit of a black art — any clarification would be greatly appreciated.

    =====
    Table creation script
    =====

    
          
          /*
          ACTION is CREATE Table gl
          */
    
    CREATE TABLE gl (
           facility_id          NUMBER(10) NOT NULL,
           dept_code            VARCHAR2(15) NOT NULL,
           gl_account           VARCHAR2(20) NOT NULL,
           gl_category          NUMBER NULL,
           descr                VARCHAR2(50) NULL
    );
    

    There is no primary key or index defined.

    ====
    Generated *.hbm.xml
    ====

    
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse - Hibernate Tools
    -->
    <hibernate-mapping>
        <class name="com.premierinc.informatics.oa.pr.pojo.Gl" table="GL" schema="OAR">
            <composite-id name="id" class="com.premierinc.informatics.oa.pr.pojo.GlId">
                <key-property name="facilityId" type="java.lang.Long">
                    <column name="FACILITY_ID" precision="10" scale="0" />
                </key-property>
                <key-property name="deptCode" type="java.lang.String">
                    <column name="DEPT_CODE" length="15" />
                </key-property>
                <key-property name="glAccount" type="java.lang.String">
                    <column name="GL_ACCOUNT" length="20" />
                </key-property>
                <key-property name="glCategory" type="java.lang.Long">
                    <column name="GL_CATEGORY" precision="22" scale="0" />
                </key-property>
                <key-property name="descr" type="java.lang.String">
                    <column name="DESCR" length="50" />
                </key-property>
            </composite-id>
        </class>
    </hibernate-mapping>
    

    And I have a Gl.java and GlId.java — can be posted if required.

    Kind regards,

    Alan Barrington-Hughes

    ====

    #251953 Reply

    Riyad Kalla
    Member

    Every table Hibernate maps has to have a PK. If it doesn’t, Hibernate will make one by using every field in the table. Just give your table a PK and Hibernate will stop going nuts making one for you 😉

    #252053 Reply

    yxan
    Member

    I found this issue and would like to add to this, it would be nice if the plug could allow you to ignore doing that. I am planning to do this as a Select only so a PK is not of any greater concern to me.

    so can you create a Hibernate mapping file with no PK? if you only use Selects or will it still blow up?

    #252077 Reply

    Riyad Kalla
    Member

    It will still blow up, try and remove the ID section from the hbm.xml file, it’s invalid according to the Hibernate spec file. Hibernat needs it.

Viewing 4 posts - 1 through 4 (of 4 total)
Reply To: Composite key question for Hibernate3 & Myeclipse4.1.1

You must be logged in to post in the forum log in