[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2043) There is an bug in InformixDialect preventing generator-class=native to work.

zhangzhen (JIRA) noreply at atlassian.com
Tue Sep 12 03:33:24 EDT 2006


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2043?page=comments#action_24409 ] 

zhangzhen commented on HHH-2043:
--------------------------------

if use other informix driver for example informix driver for 9,this problem will not appear.

> There is an bug in InformixDialect preventing generator-class=native to work.
> -----------------------------------------------------------------------------
>
>          Key: HHH-2043
>          URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2043
>      Project: Hibernate3
>         Type: Bug

>   Components: query-sql
>     Versions: 3.1.3, 3.2.0 cr1, 3.2.0.cr2, 3.2.0.cr3, 3.2.0.cr4
>  Environment: hibernate version 3.1.3, IBM Informix Dynamic Server Version 10.00.FC3R1, JDBC IBM Informix driver ver 3.0.JC3 (ifxjdbc-3.0-jc3.jar)
>     Reporter: Andrew from Poland
>     Priority: Minor

>
> Original Estimate: 2 hours
>         Remaining: 2 hours
>
> When there is an column of SERIAL or SERIAL8 type (identity types in Informix) database expect this column to appear in INSERT clause with value equal 0, for example:
> INSERT into my_table (my_serial_column, other_column) values (0, "some value"); - in this example my_serial_column is an identity column.
> Using current InformixDialect this insert looks like this:
> INSERT into my_table (other_column) values ( "some value");
> which causes an exception:
> java.sql.SQLException: Error In Specifying Automatically (Server) Generated Keys.
> 	at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:373)
> 	at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3208)
> 	at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3518)
> 	at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2353)
> 	at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2269)
> 	at com.informix.jdbc.IfxSqli.executePrepare(IfxSqli.java:1153)
> 	at com.informix.jdbc.IfxPreparedStatement.e(IfxPreparedStatement.java:318)
> 	at com.informix.jdbc.IfxPreparedStatement.a(IfxPreparedStatement.java:298)
> 	at com.informix.jdbc.IfxPreparedStatement.<init>(IfxPreparedStatement.java:275)
> 	at com.informix.jdbc.IfxSqliConnect.prepareStatement(IfxSqliConnect.java:2077)
> 	at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:418)
> 	at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:385)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.hibernate.jdbc.BorrowedConnectionProxy.invoke(BorrowedConnectionProxy.java:40)
> 	at $Proxy10.prepareStatement(Unknown Source)
> ...
> I've tested a solution - dialect must redefine getIdentityInsertString method like this:
> public String getIdentityInsertString() {
>     return "0";
> }
> After that identity column appear in INSERT clause with value set to 0.
> I'am using hibernate version 3.1.3, but in the latest build 3.2.0.cr4 problem still exist (i've downloaded it and checked InformixDialect.java file).

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