[hibernate-issues] [Hibernate-JIRA] Commented: (HBX-731) All the fields are marked as <key-property> in <composite-id>

Max Rydahl Andersen (JIRA) noreply at atlassian.com
Fri Aug 18 01:19:18 EDT 2006


    [ http://opensource.atlassian.com/projects/hibernate/browse/HBX-731?page=comments#action_23980 ] 

Max Rydahl Andersen commented on HBX-731:
-----------------------------------------

well, we choose to implement the more common approach and that is to use primarykeys to decide what is the identifier.

And if it is not there we fallback to refer to all the columns.

I guess we could alternatively add another fallback if there is a unique index declared.

Feel free to provide a patch for JDBCBinder.

> All the fields are marked as <key-property> in <composite-id>
> -------------------------------------------------------------
>
>          Key: HBX-731
>          URL: http://opensource.atlassian.com/projects/hibernate/browse/HBX-731
>      Project: Hibernate Tools
>         Type: Bug

>  Environment: Hibernate Tools 3.1.0.beta5
> MS Windows, Oracle 9i server
>     Reporter: Al Dev

>
>
> All the fields are marked as <key-property> in <composite-id>
> in the Scbcrse.hbm.xml file. How come the tool is not picking up the unique index  key fields in the database table?
> What I expect from the hibernate tool is that it should not the unique key indexes created for the database table and 
> based on that it should make the <composite-id>  fields. 
> It looks like the tool is completely ignoring the unique key indexes created on the table.
> <?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 Aug 16, 2006 4:23:47 PM by Hibernate Tools 3.1.0.beta5 -->
> <hibernate-mapping>
>     <class name="edu.sjcd.hibernate.oracle.ScbcrseMy" table="SCBCRSE" schema="SATURN">
>         <composite-id name="id" class="edu.sjcd.hibernate.oracle.generated.ScbcrseId">
>             <key-property name="scbcrseSubjCode" type="string">
>                 <column name="SCBCRSE_SUBJ_CODE" length="4" />
>             </key-property>
>             <key-property name="scbcrseCrseNumb" type="string">
>                 <column name="SCBCRSE_CRSE_NUMB" length="5" />
>             </key-property>
>             <key-property name="scbcrseEffTerm" type="string">
>                 <column name="SCBCRSE_EFF_TERM" length="6" />
>             </key-property>
>             <key-property name="scbcrseCollCode" type="string">
>                 <column name="SCBCRSE_COLL_CODE" length="2" />
>             </key-property>
>             <key-property name="scbcrseDivsCode" type="string">
>                 <column name="SCBCRSE_DIVS_CODE" length="4" />
>             </key-property>
>             <key-property name="scbcrseDeptCode" type="string">
>                 <column name="SCBCRSE_DEPT_CODE" length="4" />
>             </key-property>
>         </composite-id>
>     </class>
> </hibernate-mapping>
> I have table in oracle which has fields like this:
> CREATE TABLE SATURN.SCBCRSE
> (
>   SCBCRSE_SUBJ_CODE             VARCHAR2(4 BYTE) NOT NULL,
>   SCBCRSE_CRSE_NUMB             VARCHAR2(5 BYTE) NOT NULL,
>   SCBCRSE_EFF_TERM              VARCHAR2(6 BYTE),
>   SCBCRSE_COLL_CODE             VARCHAR2(2 BYTE),
>   SCBCRSE_DIVS_CODE             VARCHAR2(4 BYTE),
>   SCBCRSE_DEPT_CODE             VARCHAR2(4 BYTE)
> )
> CREATE UNIQUE INDEX SATURN.SCBCRSE_KEY_INDEX ON SATURN.SCBCRSE
> (SCBCRSE_SUBJ_CODE, SCBCRSE_CRSE_NUMB, SCBCRSE_EFF_TERM)
> And I have the reveng.xml as :
> <?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>
> <schema-selection match-schema="SATURN" />
> <type-mapping>
> 	<sql-type jdbc-type="NUMERIC" precision="22" scale="0" hibernate-type="long" />
> </type-mapping>
> 	<table-filter match-name="SCBCRSE.*" />
> </hibernate-reverse-engineering>

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