These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Hibernate hanging on commit/flush with no error message
PostPosted: Mon Aug 11, 2008 3:17 pm 
Newbie

Joined: Mon Jun 23, 2008 3:31 pm
Posts: 5
Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp

Hibernate version: 3.0

Mapping documents:
Code:
<?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="com.tessco.filteradmin.pojo.Application" lazy="false" table="SLTN_APPLICATION">
      <id name="id" column="ID">
         <generator class="sequence">
            <param name="sequence">application_seq</param>
         </generator>
      </id>
      
      <property name="solutionId" column="SOLUTION_ID" insert="false" update="false" type="integer"/>
      <property name="name" column="NAME" type="string"/>
      <property name="displayName" column="DISPLAY_NAME" type="string"/>
      <property name="shortDescription" column="SHORT_DESCRIPTION" type="string"/>
      <property name="longDescription" column="LONG_DESCRIPTION" type="string"/>
      <property name="imageUrl" column="IMAGE_URL" type="string"/>
      <property name="drawingUrl" column="DRAWING_URL" type="string"/>
      <property name="sequenceNum" column="SEQ_NUM" not-null="false" type="java.lang.Integer"/>
      <property name="active" column="ACTIVE" not-null="false" type="java.lang.Integer"/>
      
      <property name="modifiedOn" column="LAST_MDFY_TS" type="java.sql.Timestamp" />
      <property name="createdOn" column="CREATED_TS" type="java.sql.Timestamp" />
      <property name="lastUserId" column="LAST_USER_ID" type="string" />
      <property name="lastProgramId" column="LAST_PGM_ID" type="string" />
         
      <many-to-one
               name="solution"
               class="com.tessco.filteradmin.pojo.Solution"
               column="SOLUTION_ID"
               update="true"
               not-null="true"
               lazy="false" />
      
      <bag name="products" inverse="true" cascade="all-delete-orphan" lazy="false" order-by="SKU">
         <key column="APPLICATION_ID" />
         <one-to-many class="com.tessco.filteradmin.pojo.Product"/>
      </bag>
            
   </class>

</hibernate-mapping>


Code:
<?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="com.tessco.filteradmin.pojo.Product" lazy="false" table="SLTN_APP_PRODUCT">
            
      <composite-id name="id" class="com.tessco.filteradmin.pojo.SkuApplicationPair">
          <key-property name="sku" type="string" column="SKU"/>
          <key-property name="applicationId" type="integer" column="APPLICATION_ID"/>
       </composite-id>
      
      <property name="displayLevel" column="DISPLAY_LEVEL" type="string"/>

      <property name="sequenceNum" column="SEQ_NUM" not-null="false" type="java.lang.Integer"/>
      <property name="active" column="ACTIVE" not-null="false" type="java.lang.Integer"/>
      
      <property name="modifiedOn" column="LAST_MDFY_TS" type="java.sql.Timestamp" />
      <property name="createdOn" column="CREATED_TS" type="java.sql.Timestamp" />
      <property name="lastUserId" column="LAST_USER_ID" type="string" />
      <property name="lastProgramId" column="LAST_PGM_ID" type="string" />
         
      <many-to-one
               name="application"
               class="com.tessco.filteradmin.pojo.Application"
               column="APPLICATION_ID"
               update="false"
               insert="false"
               not-null="true"
               lazy="false" />
      
   </class>

</hibernate-mapping>


Code between sessionFactory.openSession() and session.close():
Code:
            session = HibernateUtil.getProductMaintSessionFactory( ).getCurrentSession( );
            tx = session.beginTransaction( );

            // timestamp for audit fields
            Timestamp ts = new Timestamp( System.currentTimeMillis( ) );

            SkuApplicationPair sap = new SkuApplicationPair( );
            sap.setApplicationId( appId );
            sap.setSku( sku );
            
            product = (Product) session.load( Product.class, sap );
            Product prodToMove = (Product) session.load( Product.class, moveSAP );                  
            
            app = (Application) session.load(  Application.class, appId );
            System.out.println( "---- PRODUCTS SORTED BY SEQ NUM" );
            
            Product a = (Product) app.getProducts( ).get( product.getSequenceNum( ).intValue( ) - 1 );
            Product b = (Product) app.getProducts( ).get( prodToMove.getSequenceNum( ).intValue( ) - 1 );            
            System.out.println( "---- PRODUCTS LOADED" );
            
            Integer switchSeq = b.getSequenceNum( );
            b.setSequenceNum( a.getSequenceNum( ) );
            a.setSequenceNum( switchSeq );
            System.out.println( "---- SEQ NUM" );
            
            app.getProducts( ).remove( product );
            app.getProducts( ).remove( prodToMove );
            session.save( app );
            session.flush( );
            
            a.setModifiedOn( ts );
            b.setModifiedOn( ts );
            System.out.println( "---- MODIFIED TS" );
            
            app.getProducts( ).add( a );
            app.getProducts( ).add( b );
            
            session.save( app );
            session.save( a );
            session.save( b );
            
            System.out.println( "---- SAVE" );
            
            tx.commit( );
            
            System.out.println( "---- COMMITTED" );


Full stack trace of any exception that occurs:
None, the application hangs at the commit at the end.

Name and version of the database you are using:
Oracle 9i
The generated SQL (show_sql=true):
Code:
Hibernate: select product0_.SKU as SKU113_, product0_.APPLICATION_ID as APPLICAT2_113_, product0_.DI
SPLAY_LEVEL as DISPLAY3_113_, product0_.SEQ_NUM as SEQ4_113_, product0_.ACTIVE as ACTIVE113_, produc
t0_.LAST_MDFY_TS as LAST6_113_, product0_.CREATED_TS as CREATED7_113_, product0_.LAST_USER_ID as LAS
T8_113_, product0_.LAST_PGM_ID as LAST9_113_ from SLTN_APP_PRODUCT product0_ where (APPLICATION_ID=?
)
Hibernate: select applicatio0_.ID as ID112_1_, applicatio0_.SOLUTION_ID as SOLUTION2_112_1_, applica
tio0_.NAME as NAME112_1_, applicatio0_.DISPLAY_NAME as DISPLAY4_112_1_, applicatio0_.SHORT_DESCRIPTI
ON as SHORT5_112_1_, applicatio0_.LONG_DESCRIPTION as LONG6_112_1_, applicatio0_.IMAGE_URL as IMAGE7
_112_1_, applicatio0_.DRAWING_URL as DRAWING8_112_1_, applicatio0_.SEQ_NUM as SEQ9_112_1_, applicati
o0_.ACTIVE as ACTIVE112_1_, applicatio0_.LAST_MDFY_TS as LAST11_112_1_, applicatio0_.CREATED_TS as C
REATED12_112_1_, applicatio0_.LAST_USER_ID as LAST13_112_1_, applicatio0_.LAST_PGM_ID as LAST14_112_
1_, solution1_.ID as ID111_0_, solution1_.NAME as NAME111_0_, solution1_.DISPLAY_NAME as DISPLAY3_11
1_0_, solution1_.SHORT_DESCRIPTION as SHORT4_111_0_, solution1_.LONG_DESCRIPTION as LONG5_111_0_, so
lution1_.IMAGE_URL as IMAGE6_111_0_, solution1_.ACTIVE as ACTIVE111_0_, solution1_.SEQ_NUM as SEQ8_1
11_0_, solution1_.LAST_MDFY_TS as LAST9_111_0_, solution1_.CREATED_TS as CREATED10_111_0_, solution1
_.LAST_USER_ID as LAST11_111_0_, solution1_.LAST_PGM_ID as LAST12_111_0_ from SLTN_APPLICATION appli
catio0_ inner join SOLUTION solution1_ on applicatio0_.SOLUTION_ID=solution1_.ID where applicatio0_.
ID=?
Hibernate: select products0_.APPLICATION_ID as APPLICAT2_1_, products0_.SKU as SKU1_, products0_.SKU
as SKU113_0_, products0_.APPLICATION_ID as APPLICAT2_113_0_, products0_.DISPLAY_LEVEL as DISPLAY3_1
13_0_, products0_.SEQ_NUM as SEQ4_113_0_, products0_.ACTIVE as ACTIVE113_0_, products0_.LAST_MDFY_TS
as LAST6_113_0_, products0_.CREATED_TS as CREATED7_113_0_, products0_.LAST_USER_ID as LAST8_113_0_,
products0_.LAST_PGM_ID as LAST9_113_0_ from SLTN_APP_PRODUCT products0_ where products0_.APPLICATIO
N_ID=? order by products0_.SKU
Hibernate: select applicatio0_.SOLUTION_ID as SOLUTION2_1_, applicatio0_.ID as ID1_, applicatio0_.ID
as ID112_0_, applicatio0_.SOLUTION_ID as SOLUTION2_112_0_, applicatio0_.NAME as NAME112_0_, applica
tio0_.DISPLAY_NAME as DISPLAY4_112_0_, applicatio0_.SHORT_DESCRIPTION as SHORT5_112_0_, applicatio0_
.LONG_DESCRIPTION as LONG6_112_0_, applicatio0_.IMAGE_URL as IMAGE7_112_0_, applicatio0_.DRAWING_URL
as DRAWING8_112_0_, applicatio0_.SEQ_NUM as SEQ9_112_0_, applicatio0_.ACTIVE as ACTIVE112_0_, appli
catio0_.LAST_MDFY_TS as LAST11_112_0_, applicatio0_.CREATED_TS as CREATED12_112_0_, applicatio0_.LAS
T_USER_ID as LAST13_112_0_, applicatio0_.LAST_PGM_ID as LAST14_112_0_ from SLTN_APPLICATION applicat
io0_ where applicatio0_.SOLUTION_ID=? order by applicatio0_.ID
Hibernate: select product0_.SKU as SKU113_, product0_.APPLICATION_ID as APPLICAT2_113_, product0_.DI
SPLAY_LEVEL as DISPLAY3_113_, product0_.SEQ_NUM as SEQ4_113_, product0_.ACTIVE as ACTIVE113_, produc
t0_.LAST_MDFY_TS as LAST6_113_, product0_.CREATED_TS as CREATED7_113_, product0_.LAST_USER_ID as LAS
T8_113_, product0_.LAST_PGM_ID as LAST9_113_ from SLTN_APP_PRODUCT product0_ where (APPLICATION_ID=?
)
Hibernate: select applicatio0_.ID as ID112_1_, applicatio0_.SOLUTION_ID as SOLUTION2_112_1_, applica
tio0_.NAME as NAME112_1_, applicatio0_.DISPLAY_NAME as DISPLAY4_112_1_, applicatio0_.SHORT_DESCRIPTI
ON as SHORT5_112_1_, applicatio0_.LONG_DESCRIPTION as LONG6_112_1_, applicatio0_.IMAGE_URL as IMAGE7
_112_1_, applicatio0_.DRAWING_URL as DRAWING8_112_1_, applicatio0_.SEQ_NUM as SEQ9_112_1_, applicati
o0_.ACTIVE as ACTIVE112_1_, applicatio0_.LAST_MDFY_TS as LAST11_112_1_, applicatio0_.CREATED_TS as C
REATED12_112_1_, applicatio0_.LAST_USER_ID as LAST13_112_1_, applicatio0_.LAST_PGM_ID as LAST14_112_
1_, solution1_.ID as ID111_0_, solution1_.NAME as NAME111_0_, solution1_.DISPLAY_NAME as DISPLAY3_11
1_0_, solution1_.SHORT_DESCRIPTION as SHORT4_111_0_, solution1_.LONG_DESCRIPTION as LONG5_111_0_, so
lution1_.IMAGE_URL as IMAGE6_111_0_, solution1_.ACTIVE as ACTIVE111_0_, solution1_.SEQ_NUM as SEQ8_1
11_0_, solution1_.LAST_MDFY_TS as LAST9_111_0_, solution1_.CREATED_TS as CREATED10_111_0_, solution1
_.LAST_USER_ID as LAST11_111_0_, solution1_.LAST_PGM_ID as LAST12_111_0_ from SLTN_APPLICATION appli
catio0_ inner join SOLUTION solution1_ on applicatio0_.SOLUTION_ID=solution1_.ID where applicatio0_.
ID=?
Hibernate: select products0_.APPLICATION_ID as APPLICAT2_1_, products0_.SKU as SKU1_, products0_.SKU
as SKU113_0_, products0_.APPLICATION_ID as APPLICAT2_113_0_, products0_.DISPLAY_LEVEL as DISPLAY3_1
13_0_, products0_.SEQ_NUM as SEQ4_113_0_, products0_.ACTIVE as ACTIVE113_0_, products0_.LAST_MDFY_TS
as LAST6_113_0_, products0_.CREATED_TS as CREATED7_113_0_, products0_.LAST_USER_ID as LAST8_113_0_,
products0_.LAST_PGM_ID as LAST9_113_0_ from SLTN_APP_PRODUCT products0_ where products0_.APPLICATIO
N_ID=? order by products0_.SKU
Hibernate: select applicatio0_.SOLUTION_ID as SOLUTION2_1_, applicatio0_.ID as ID1_, applicatio0_.ID
as ID112_0_, applicatio0_.SOLUTION_ID as SOLUTION2_112_0_, applicatio0_.NAME as NAME112_0_, applica
tio0_.DISPLAY_NAME as DISPLAY4_112_0_, applicatio0_.SHORT_DESCRIPTION as SHORT5_112_0_, applicatio0_
.LONG_DESCRIPTION as LONG6_112_0_, applicatio0_.IMAGE_URL as IMAGE7_112_0_, applicatio0_.DRAWING_URL
as DRAWING8_112_0_, applicatio0_.SEQ_NUM as SEQ9_112_0_, applicatio0_.ACTIVE as ACTIVE112_0_, appli
catio0_.LAST_MDFY_TS as LAST11_112_0_, applicatio0_.CREATED_TS as CREATED12_112_0_, applicatio0_.LAS
T_USER_ID as LAST13_112_0_, applicatio0_.LAST_PGM_ID as LAST14_112_0_ from SLTN_APPLICATION applicat
io0_ where applicatio0_.SOLUTION_ID=? order by applicatio0_.ID
---- SEQ NUM TO MOVE: 2
---- UP
---- MATCH: 123456
---- SAP: 123456
Hibernate: select product0_.SKU as SKU113_2_, product0_.APPLICATION_ID as APPLICAT2_113_2_, product0
_.DISPLAY_LEVEL as DISPLAY3_113_2_, product0_.SEQ_NUM as SEQ4_113_2_, product0_.ACTIVE as ACTIVE113_
2_, product0_.LAST_MDFY_TS as LAST6_113_2_, product0_.CREATED_TS as CREATED7_113_2_, product0_.LAST_
USER_ID as LAST8_113_2_, product0_.LAST_PGM_ID as LAST9_113_2_, applicatio1_.ID as ID112_0_, applica
tio1_.SOLUTION_ID as SOLUTION2_112_0_, applicatio1_.NAME as NAME112_0_, applicatio1_.DISPLAY_NAME as
DISPLAY4_112_0_, applicatio1_.SHORT_DESCRIPTION as SHORT5_112_0_, applicatio1_.LONG_DESCRIPTION as
LONG6_112_0_, applicatio1_.IMAGE_URL as IMAGE7_112_0_, applicatio1_.DRAWING_URL as DRAWING8_112_0_,
applicatio1_.SEQ_NUM as SEQ9_112_0_, applicatio1_.ACTIVE as ACTIVE112_0_, applicatio1_.LAST_MDFY_TS
as LAST11_112_0_, applicatio1_.CREATED_TS as CREATED12_112_0_, applicatio1_.LAST_USER_ID as LAST13_1
12_0_, applicatio1_.LAST_PGM_ID as LAST14_112_0_, solution2_.ID as ID111_1_, solution2_.NAME as NAME
111_1_, solution2_.DISPLAY_NAME as DISPLAY3_111_1_, solution2_.SHORT_DESCRIPTION as SHORT4_111_1_, s
olution2_.LONG_DESCRIPTION as LONG5_111_1_, solution2_.IMAGE_URL as IMAGE6_111_1_, solution2_.ACTIVE
as ACTIVE111_1_, solution2_.SEQ_NUM as SEQ8_111_1_, solution2_.LAST_MDFY_TS as LAST9_111_1_, soluti
on2_.CREATED_TS as CREATED10_111_1_, solution2_.LAST_USER_ID as LAST11_111_1_, solution2_.LAST_PGM_I
D as LAST12_111_1_ from SLTN_APP_PRODUCT product0_ inner join SLTN_APPLICATION applicatio1_ on produ
ct0_.APPLICATION_ID=applicatio1_.ID left outer join SOLUTION solution2_ on applicatio1_.SOLUTION_ID=
solution2_.ID where product0_.SKU=? and product0_.APPLICATION_ID=?
Hibernate: select applicatio0_.SOLUTION_ID as SOLUTION2_1_, applicatio0_.ID as ID1_, applicatio0_.ID
as ID112_0_, applicatio0_.SOLUTION_ID as SOLUTION2_112_0_, applicatio0_.NAME as NAME112_0_, applica
tio0_.DISPLAY_NAME as DISPLAY4_112_0_, applicatio0_.SHORT_DESCRIPTION as SHORT5_112_0_, applicatio0_
.LONG_DESCRIPTION as LONG6_112_0_, applicatio0_.IMAGE_URL as IMAGE7_112_0_, applicatio0_.DRAWING_URL
as DRAWING8_112_0_, applicatio0_.SEQ_NUM as SEQ9_112_0_, applicatio0_.ACTIVE as ACTIVE112_0_, appli
catio0_.LAST_MDFY_TS as LAST11_112_0_, applicatio0_.CREATED_TS as CREATED12_112_0_, applicatio0_.LAS
T_USER_ID as LAST13_112_0_, applicatio0_.LAST_PGM_ID as LAST14_112_0_ from SLTN_APPLICATION applicat
io0_ where applicatio0_.SOLUTION_ID=? order by applicatio0_.ID
Hibernate: select products0_.APPLICATION_ID as APPLICAT2_1_, products0_.SKU as SKU1_, products0_.SKU
as SKU113_0_, products0_.APPLICATION_ID as APPLICAT2_113_0_, products0_.DISPLAY_LEVEL as DISPLAY3_1
13_0_, products0_.SEQ_NUM as SEQ4_113_0_, products0_.ACTIVE as ACTIVE113_0_, products0_.LAST_MDFY_TS
as LAST6_113_0_, products0_.CREATED_TS as CREATED7_113_0_, products0_.LAST_USER_ID as LAST8_113_0_,
products0_.LAST_PGM_ID as LAST9_113_0_ from SLTN_APP_PRODUCT products0_ where products0_.APPLICATIO
N_ID=? order by products0_.SKU
---- PRODUCTS SORTED BY SEQ NUM
---- PRODUCTS LOADED
---- SEQ NUM
Hibernate: delete from SLTN_APP_PRODUCT where SKU=? and APPLICATION_ID=?
Hibernate: delete from SLTN_APP_PRODUCT where SKU=? and APPLICATION_ID=?



I'm trying to swap the sequenceNum of two Product objects, which belong to the same Application (as shown above). Whenever I get to a commit or flush, Hibernate hangs but does not throw an exception. I have done similar code before which works, but a main difference is that this one is using a composite-id instead of a normal unique id.[/code]


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.