[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2715) DB2390Dialect does not support unique index generation for primary key

Maximiliano Fierro (JIRA) noreply at atlassian.com
Wed Jul 11 10:14:52 EDT 2007


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_27447 ] 

Maximiliano Fierro commented on HHH-2715:
-----------------------------------------

I have tried this patch and it works properly. About other things that I must change long type is mapped to BIGINT type and DB2 on OS390 doesn't accept that. I have to remap it to DOUBLE.

My procedure was:

-Create a class and extend from DB2390Dialect.
-Override method mentioned by Eric (supportsUniqueConstraintInCreateAlterTable) to return false.
-Declare an index on the primary key.

For that people that use Annotations I must declare a Constraint on my Table in order to create this index:

@Table(name="TEST_TBL", uniqueConstraints={@UniqueConstraint(columnNames={"id"})} )

Note that you don't need to use an @Index because the DDL generated for this Annotation is without UNIQUE word.

Hope that be helpful!


> DB2390Dialect does not support unique index generation for primary key
> ----------------------------------------------------------------------
>
>                 Key: HHH-2715
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2715
>             Project: Hibernate3
>          Issue Type: Patch
>          Components: core
>    Affects Versions: 3.2.4.sp1
>         Environment: hibernate 2.1.4 - database: DB2 for 0S390 v7.1 - OS390 
>            Reporter: Eric Georges
>   Original Estimate: 10 minutes
>  Remaining Estimate: 10 minutes
>
> supportsUniqueConstraintInCreateAlterTable return true. For IBM DB2 on OS 390 it must return false.
> hbm file :
> <?xml version="1.0"?>
> <!DOCTYPE hibernate-mapping PUBLIC
>         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
>         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
> <hibernate-mapping>
> 	<class name="events.Event" table="EVENTS">
> 		<id name="id">
> 			<column name="ID" unique-key="ID_IDX" sql-type="int">
> 			</column>
> 			<generator class="increment"></generator>
> 		</id>
> 		<property name="date" type="timestamp" column="DATE"></property>
> 		<property name="title" type="string" column="TITLE">
> 		</property>
> 	</class>
> </hibernate-mapping>
> Actually it generate this :
> create table EVENTS (ID int not null, DATE timestamp, TITLE varchar(255), primary key (ID), unique (ID))
> if supportsUniqueConstraintInCreateAlterTable return false it does :
> create table EVENTS (ID int not null, DATE timestamp, TITLE varchar(255), primary key (ID))
> create unique index ID_IDX on EVENTS (ID)
> the right SQL code for DB2 v7 on OS390

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