[hibernate-issues] [Hibernate-JIRA] Created: (HHH-4009) idbag collection-id native / identity fails on sql server (but works on oracle)

dominic roesti (JIRA) noreply at atlassian.com
Thu Jul 2 08:44:15 EDT 2009


idbag collection-id native / identity fails on sql server (but works on oracle)
-------------------------------------------------------------------------------

                 Key: HHH-4009
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4009
             Project: Hibernate Core
          Issue Type: Bug
    Affects Versions: 3.2.4
         Environment: - jboss 4.3.0_GA coming with hibernate 3.2.4
- java jdk 1.5.0_18
- windows server 2008 E SP2
- microsoft sqljdbc 2.0 driver
- microsoft sql server 2008 E 
            Reporter: dominic roesti


related forum post:
https://forum.hibernate.org/viewtopic.php?f=1&t=998004&start=0

i'm trying use native id generation to enable my hibernate / java application for cross platform usage, it should run with oracle 10g (sequence) as well as with microsoft sql server 2008 (identity)

i'm having a class "RoutingTable" with class "Route" as composite element, configured as follows:

/**
     * @hibernate.collection-id generator-class = "native" type =
     * "java.lang.Long" column = "ID"
     * @hibernate.composite-element class = "com.rixxo.mbsp.model.routing.Route"
     *
     * @hibernate.generator-param
     *   name  = "sequence"
     *   value = "sq_id_mbsp_route"
     *
     * @hibernate.idbag lazy = "false" table = "MBSP_ROUTE" order-by = "POSITION
     * asc"
     * @hibernate.key column = "ROUTING_TABLE_ID"
     */
    public List<Route> getRoutes() {
        return routes;
    }

    public void setRoutes(List<Route> routes) {
        this.routes = routes;
    }


on sql server, when saving the RoutingTable with new Routes on, this causes a classcast exception:

Code:
2009-07-02 10:18:26,369 [http-8443-3] INFO  STDOUT - Hibernate: insert into MBSP_ROUTE (ROUTING_TABLE_ID, ID, OPERATOR_ID, CHANNEL_ID, POSITION) values (?, ?, ?, ?, ?)
2009-07-02 10:18:26,370 [http-8443-3] INFO  LongType - could not bind value 'POST_INSERT_INDICATOR' to parameter: 2; org.hibernate.id.IdentifierGeneratorFactory$2
2009-07-02 10:18:26,371 [http-8443-3] WARN  arjLoggerI18N - [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple at 1b853a5
java.lang.ClassCastException: org.hibernate.id.IdentifierGeneratorFactory$2
   at org.hibernate.type.LongType.set(LongType.java:42)
   at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
   at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:116)
   at org.hibernate.persister.collection.AbstractCollectionPersister.writeIdentifier(AbstractCollectionPersister.java:807)
   at org.hibernate.persister.collection.AbstractCollectionPersister.insertRows(AbstractCollectionPersister.java:1359)
   at org.hibernate.action.CollectionUpdateAction.execute(CollectionUpdateAction.java:56)


i tried "native" as well as "identity" with the same result.

there are multiple problems:
1) hibernate seems to try to insert a value into an identity field (ID)
2) the POST_INSERT_INDICATOR value cant be bound



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