-->
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: saveOrUpdate() ignores custom SQL for loading on cascade
PostPosted: Wed Feb 20, 2008 12:49 am 
Newbie

Joined: Tue Feb 19, 2008 6:11 pm
Posts: 3
The test case below is quite contrived, but it corresponds to the real-life problem I am running into. Assume some data is stored as BLOBs in a table in a database (here Oracle), using an unknown, proprietary data structure. Custom functions are provided in the database to convert to and from the binary format into a well-known text format. In order to insert, update, and select rows in this table using Hibernate, we configured custom SQL statements in the mapping files (loader, sql-insert, sql-update) as well as developed a custom type converter to convert the well-known text format to and from Java classes.

This works very well with one exception: When calling Session.saveOrUpdate() or Session.merge() on a detached entity that has a one-to-many relationship to another entity, which is configured with cascade="all", Hibernate doesn't seem to use the SQL loader defined in the mapping file for the related entities. Instead, Hibernate generates a statement dynamically. As our application cannot handle the BLOB columns directly we need to make sure Hibernate always uses the configured loader.

Again, this example is a contrived one. It could probably be implemented in a much easier way with Hibernate, but it was chosen as it reproduces the issue we are seeing in our application very well.

I am pretty much at wit's end. Any suggestions would be greatly appreciated.

Thanks,
Carsten

Hibernate version:

Hibernate 3.2.5.ga

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

<!--
    This mapping demonstrates the use of Hibernate with all-handwritten SQL!

    Note: this version is for Oracle
-->
<hibernate-mapping package="snapshot">
   
   <class name="Order" table="TBL_ORDER">
      <id name="id" type="long">
         <column name="ORDER_ID" precision="12" scale="0"
            not-null="true" />
         <generator class="increment" />
      </id>
      <property name="orderDate">
         <column name="ORDER_DT" length="7" not-null="true" />
      </property>
      <set name="lineItems" inverse="true" cascade="all">
         <key>
            <column name="ORDER_ID" precision="12" scale="0"
               not-null="true" />
         </key>
         <one-to-many class="LineItem" />
         <loader query-ref="loadLineItems"/>
      </set>
   </class>

   <class name="LineItem" table="TBL_LINE_ITEM">
      <composite-id name="id" class="LineItemId">
         <key-many-to-one name="order" class="Order">
            <column name="ORDER_ID" precision="12" scale="0"
               not-null="true" />
         </key-many-to-one>
         <key-property name="sku">
            <column name="SKU" length="8" />
         </key-property>
      </composite-id>
      <property name="quantity">
         <column name="QUANTITY" precision="4" scale="0"
            not-null="true" />
      </property>
      <property name="units">
         <column name="UNIT" length="16" not-null="true" />
         <type name="snapshot.UnitUserType" />
      </property>
      <loader query-ref="loadLineItem"/>
      <sql-insert>
         insert
          into
              TBL_LINE_ITEM
              (QUANTITY, UNIT, ORDER_ID, SKU)
          values
              (?, DECODE(?, 'EA', 'Einzeln', 'DZ', 'Dutzend', 'PR', 'Paar'), ?, ?)
      </sql-insert>
      <sql-update>
         update
              TBL_LINE_ITEM
          set
             QUANTITY = ?,
              UNIT = DECODE(?, 'EA', 'Einzeln', 'DZ', 'Dutzend', 'PR', 'Paar'),
             ORDER_ID = ?,
             SKU = ?)
         where
            ORDER_ID = :id
            and SKU = :sku
      </sql-update>
   </class>
   
   <sql-query name="loadLineItem">        
        select
          lineItem.ORDER_ID,
          lineItem.SKU,
          lineItem.QUANTITY,
          DECODE(lineItem.UNITS, 'Einzeln', 'EA', 'Dutzend', 'DZ', 'Paar', 'PR') as UNIT       
        from
           LINE_ITEM lineItem
        where
           LINE_ITEM.ORDER_ID=:id
     </sql-query>
     
   <sql-query name="loadLineItems">
        <load-collection alias="lineItems" role="Order.lineItems" />
        select
          lineItem.ORDER_ID,
          lineItem.SKU,
          lineItem.QUANTITY,
          DECODE(lineItem.UNITS, 'Einzeln', 'EA', 'Dutzend', 'DZ', 'Paar', 'PR') as UNIT      
        from
           LINE_ITEM lineItem
        where
           LINE_ITEM.ORDER_ID=:id
     </sql-query>     
         
</hibernate-mapping>


jUnit test case:

Code:
package snapshot.oracle;

import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import snapshot.LineItem;
import snapshot.LineItemId;
import snapshot.Order;

import junit.framework.TestCase;

public class OracleSnapshotTest extends TestCase {

    private SessionFactory sessionFactory;

    @Override
    public void setUp() {
        // Create the SessionFactory from hibernate.cfg.xml
        sessionFactory = new Configuration().configure().buildSessionFactory();       
    }
   
    @Override
    public void tearDown() {
        if (sessionFactory != null) {
            sessionFactory.close();     
        }
    }   
   
   public void testSaveOrUpdate() {             
       Session session = sessionFactory.openSession();
      
       Order order = createOrder();
               
        session.saveOrUpdate(order);
        session.flush();
        session.clear();       
       
        Order newOrder = createOrder();
        newOrder.setId(order.getId());
        session.saveOrUpdate(newOrder);
        session.close();                       
   }
   
   private Order createOrder() {
       Order order = new Order();
        order.setOrderDate(new Date());
       
        LineItemId liId1 = new LineItemId();
        liId1.setOrder(order);
        liId1.setSku("12345678");
        LineItem li1 = new LineItem();
        li1.setId(liId1);
        li1.setQuantity(2);
        li1.setUnits("Each");
        order.getLineItems().add(li1);
       
        LineItemId liId2 = new LineItemId();
        liId2.setOrder(order);
        liId2.setSku("87654321");
        LineItem li2 = new LineItem();
        li2.setId(liId2);
        li2.setQuantity(1);
        li2.setUnits("Each");
        order.getLineItems().add(li2);
       
        return order;
   }
   
}


class Order:

Code:
package snapshot;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

public class Order {   
   
   long id;

   Date orderDate;
               
   Set<LineItem> lineItems = new HashSet<LineItem>();
   
   public long getId() {
      return id;
   }

   public void setId(long id) {
      this.id = id;
   }   
   
   public Date getOrderDate() {
      return orderDate;
   }
   
   public void setOrderDate(Date orderDate) {
      this.orderDate = orderDate;
   }
   
   public Set<LineItem> getLineItems() {
      return lineItems;
   }
   
   public void setLineItems(Set<LineItem> lineItems) {
      this.lineItems = lineItems;
   }   

}


class LineItem:

Code:
package snapshot;

public class LineItem {
   
   LineItemId id;
   int quantity;
   String units;
   
   public LineItemId getId() {
      return id;
   }

   public void setId(LineItemId id) {
      this.id = id;
   }
   
   public String getUnits() {
      return units;
   }
   
   public void setUnits(String units) {
      this.units = units;
   }
   
   public int getQuantity() {
      return quantity;
   }
   
   public void setQuantity(int quantity) {
      this.quantity = quantity;
   }

}



class LineItemId:

Code:
package snapshot;

import java.io.Serializable;

@SuppressWarnings("serial")
public class LineItemId implements Serializable {

    Order order;
    String sku;

    public Order getOrder() {
        return order;
    }

    public void setOrder(Order order) {
        this.order = order;
    }

    public String getSku() {
        return sku;
    }

    public void setSku(String sku) {
        this.sku = sku;
    }

}



class UnitUserType:

Code:
package snapshot;

import java.io.Serializable;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;

import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.usertype.UserType;

public class UnitUserType implements UserType {

    public UnitUserType() {
    }

    public int[] sqlTypes() {
        return new int[] { Types.VARCHAR };
    }

    @SuppressWarnings("unchecked")
    public Class returnedClass() {
        return String.class;
    }

    public boolean isMutable() {
        return false;
    }

    public Object deepCopy(Object o) throws HibernateException {
        if (o == null)
            return null;
        return new String(((String)o).getBytes());
    }

    public Object assemble(Serializable cached, Object owner)
            throws HibernateException {
        return cached;
    }

    public Serializable disassemble(Object value) throws HibernateException {
        return (Serializable) value;
    }

    public Object replace(Object original, Object target, Object owner)
            throws HibernateException {
        return original;
    }

    public boolean equals(Object x, Object y) throws HibernateException {
        return (x == y) || (x != null && y != null && (x.equals(y)));
    }

    public int hashCode(Object x) throws HibernateException {
        return x.hashCode();
    }

    public Object nullSafeGet(ResultSet inResultSet, String[] names, Object o)
            throws HibernateException, SQLException {
        String s = (String) Hibernate.STRING.nullSafeGet(inResultSet, names[0]);
        if (s == null) return null;
        if (s.equals("EA")) {
            return "Each";
        }
        else if (s.equals("DZ")) {
            return "Dozen";
        }
        else if (s.equals("PR")) {
            return "Pair";
        }
        else throw new HibernateException("Invalid unit");
    }

    public void nullSafeSet(PreparedStatement inPreparedStatement, Object o,
            int i) throws HibernateException, SQLException {
        String s = (String)o;       
        if (s == null) {
            // do nothing
        }
        else if (s.equals("Each")) {
            s = "EA";
        }
        else if (s.equals("Dozen")) {
            s = "DZ";
        }
        else if (s.equals("Pair")) {
            s = "PR";
        }
        else throw new HibernateException("Invalid unit");
        inPreparedStatement.setString(i, s);
    }

}


Full stack trace of any exception that occurs:

The exception below is actually generated by our code to indicate that Hibernate did not use the custom SQL load statement defined for the LineItem class:

Code:
org.hibernate.HibernateException: Invalid unit
   at snapshot.UnitUserType.nullSafeGet(UnitUserType.java:72)
   at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:105)
   at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
   at org.hibernate.persister.entity.AbstractEntityPersister.getDatabaseSnapshot(AbstractEntityPersister.java:1034)
   at org.hibernate.engine.StatefulPersistenceContext.getDatabaseSnapshot(StatefulPersistenceContext.java:246)
   at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:189)
   at org.hibernate.event.def.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:512)
   at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:80)
   at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
   at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
   at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
   at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:218)
   at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
   at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
   at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
   at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:296)
   at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242)
   at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219)
   at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
   at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
   at org.hibernate.engine.Cascade.cascade(Cascade.java:97)
   at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:357)
   at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:329)
   at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:223)
   at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:89)
   at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
   at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
   at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
   at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495)
   at snapshot.oracle.OracleSnapshotTest.testSaveOrUpdate(OracleSnapshotTest.java:48)
   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 junit.framework.TestCase.runTest(TestCase.java:154)
   at junit.framework.TestCase.runBare(TestCase.java:127)
   at junit.framework.TestResult$1.protect(TestResult.java:106)
   at junit.framework.TestResult.runProtected(TestResult.java:124)
   at junit.framework.TestResult.run(TestResult.java:109)
   at junit.framework.TestCase.run(TestCase.java:118)
   at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
   at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)




Name and version of the database you are using:

Oracle10g R2 (10.2.0.3.0)

The generated SQL (show_sql=true):

Code:
select
        lineitem_.ORDER_ID,
        lineitem_.SKU,
        lineitem_.QUANTITY as QUANTITY1_,
        lineitem_.UNIT as UNIT1_
    from
        TBL_LINE_ITEM lineitem_
    where
        lineitem_.ORDER_ID=?
        and lineitem_.SKU=?


Debug level Hibernate log excerpt:

[code]0 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.2.5
0 [main] INFO org.hibernate.cfg.Environment - loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver, hibernate.max_fetch_depth=1, hibernate.dialect=org.hibernate.dialect.Oracle10gDialect, hibernate.jdbc.use_streams_for_binary=true, hibernate.format_sql=true, hibernate.connection.username=testuser, hibernate.hbm2ddl.auto=create-drop, hibernate.connection.url=jdbc:oracle:thin:@localhost:1521:ORCL, hibernate.bytecode.use_reflection_optimizer=false, hibernate.show_sql=true, hibernate.connection.password=****, hibernate.jdbc.batch_versioned_data=true, hibernate.connection.pool_size=1}
0 [main] INFO org.hibernate.cfg.Environment - using java.io streams to persist binary types
0 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : cglib
0 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
47 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
47 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
78 [main] DEBUG org.hibernate.util.DTDEntityResolver - trying to resolve system-id [http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd]
78 [main] DEBUG org.hibernate.util.DTDEntityResolver - recognized hibernate namespace; attempting to resolve on classpath under org/hibernate/
78 [main] DEBUG org.hibernate.util.DTDEntityResolver - located [http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd] in classpath
109 [main] DEBUG org.hibernate.cfg.Configuration - null<-org.dom4j.tree.DefaultAttribute@d1e89e [Attribute: name resource value "snapshot/oracle/Mappings.hbm.xml"]
109 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : snapshot/oracle/Mappings.hbm.xml
109 [main] DEBUG org.hibernate.util.DTDEntityResolver - trying to resolve system-id [http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd]
109 [main] DEBUG org.hibernate.util.DTDEntityResolver - recognized hibernate namespace; attempting to resolve on classpath under org/hibernate/
109 [main] DEBUG org.hibernate.util.DTDEntityResolver - located [http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd] in classpath
203 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: snapshot.Order -> TBL_ORDER
203 [main] DEBUG org.hibernate.cfg.HbmBinder - Mapped property: id -> ORDER_ID
219 [main] DEBUG org.hibernate.cfg.HbmBinder - Mapped property: orderDate -> ORDER_DT
219 [main] DEBUG org.hibernate.cfg.HbmBinder - Mapped property: lineItems
219 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: snapshot.LineItem -> TBL_LINE_ITEM
265 [main] DEBUG org.hibernate.cfg.HbmBinder - Mapped property: order -> ORDER_ID
265 [main] DEBUG org.hibernate.cfg.HbmBinder - Mapped property: sku -> SKU
265 [main] DEBUG org.hibernate.cfg.HbmBinder - Mapped property: id -> ORDER_ID, SKU
265 [main] DEBUG org.hibernate.cfg.HbmBinder - Mapped property: quantity -> QUANTITY
265 [main] DEBUG org.hibernate.cfg.HbmBinder - Mapped property: units -> UNIT
265 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
265 [main] DEBUG org.hibernate.cfg.Configuration - properties: {java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition, hibernate.connection.password=secret, sun.boot.library.path=C:\Program Files\Java\jdk1.5.0_12\jre\bin, java.vm.version=1.5.0_12-b04, hibernate.connection.username=testuser, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, path.separator=;, java.vm.name=Java HotSpot(TM) Client VM, file.encoding.pkg=sun.io, user.country=US, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=Service Pack 2, java.vm.specification.name=Java Virtual Machine Specification, user.dir=C:\TEMP\hibernate-snapshot-error, java.runtime.version=1.5.0_12-b04, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=C:\Program Files\Java\jdk1.5.0_12\jre\lib\endorsed, os.arch=x86, java.io.tmpdir=C:\DOCUME~1\cars3788\LOCALS~1\Temp\, line.separator=
, java.vm.specification.vendor=Sun Microsystems Inc., user.variant=, os.name=Windows XP, hibernate.jdbc.batch_versioned_data=true, sun.jnu.encoding=Cp1252, java.library.path=C:\Program Files\Java\jdk1.5.0_12\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jre1.5.0_12\bin\client;C:\Program Files\Java\jre1.5.0_12\bin;C:\oracle\product\10.2.0\db_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Java\jdk1.5.0_12\bin;C:\Program Files\Java\apache-maven-2.0.8\bin;C:\Program Files\QuickTime\QTSystem\, java.specification.name=Java Platform API Specification, java.class.version=49.0, hibernate.connection.pool_size=1, sun.management.compiler=HotSpot Client Compiler, os.version=5.1, user.home=C:\Documents and Settings\cars3788, user.timezone=, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=Cp1252, java.specification.version=1.5, hibernate.format_sql=true, hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver, java.class.path=C:\TEMP\hibernate-snapshot-error\bin;C:\TEMP\hibernate-snapshot-error\lib\antlr-2.7.6.jar;C:\TEMP\hibernate-snapshot-error\lib\asm.jar;C:\TEMP\hibernate-snapshot-error\lib\asm-attrs.jar;C:\TEMP\hibernate-snapshot-error\lib\cglib-2.1.3.jar;C:\TEMP\hibernate-snapshot-error\lib\commons-collections-2.1.1.jar;C:\TEMP\hibernate-snapshot-error\lib\commons-logging-1.0.4.jar;C:\TEMP\hibernate-snapshot-error\lib\dom4j-1.6.1.jar;C:\TEMP\hibernate-snapshot-error\lib\hibernate3.jar;C:\TEMP\hibernate-snapshot-error\lib\jta.jar;C:\TEMP\hibernate-snapshot-error\lib\junit-3.8.1.jar;C:\TEMP\hibernate-snapshot-error\lib\log4j-1.2.11.jar;C:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar;/C:/Program Files/Java/eclipse/configuration/org.eclipse.osgi/bundles/192/1/.cp/;/C:/Program Files/Java/eclipse/configuration/org.eclipse.osgi/bundles/190/1/.cp/, user.name=cars3788, hibernate.bytecode.use_reflection_optimizer=false, hibernate.show_sql=true, java.vm.specification.version=1.0, java.home=C:\Program Files\Java\jdk1.5.0_12\jre, sun.arch.data.model=32, hibernate.dialect=org.hibernate.dialect.Oracle10gDialect, hibernate.connection.url=jdbc:oracle:thin:@localhost:1521:ORCL, user.language=en, java.specification.vendor=Sun Microsystems Inc., awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, hibernate.jdbc.use_streams_for_binary=true, java.version=1.5.0_12, java.ext.dirs=C:\Program Files\Java\jdk1.5.0_12\jre\lib\ext, sun.boot.class.path=C:\Program Files\Java\jdk1.5.0_12\jre\lib\rt.jar;C:\Program Files\Java\jdk1.5.0_12\jre\lib\i18n.jar;C:\Program Files\Java\jdk1.5.0_12\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.5.0_12\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.5.0_12\jre\lib\jce.jar;C:\Program Files\Java\jdk1.5.0_12\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.5.0_12\jre\classes, java.vendor=Sun Microsystems Inc., file.separator=\, hibernate.hbm2ddl.auto=create-drop, java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, hibernate.max_fetch_depth=1, sun.desktop=windows, sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86}
265 [main] DEBUG org.hibernate.cfg.Configuration - Preparing to build session factory with filters : {}
265 [main] DEBUG org.hibernate.cfg.Configuration - processing extends queue
265 [main] DEBUG org.hibernate.cfg.Configuration - processing collection mappings
265 [main] DEBUG org.hibernate.cfg.CollectionSecondPass - Second pass for collection: snapshot.Order.lineItems
265 [main] INFO org.hibernate.cfg.HbmBinder - Mapping collection: snapshot.Order.lineItems -> TBL_LINE_ITEM
265 [main] DEBUG org.hibernate.cfg.CollectionSecondPass - Mapped collection key: ORDER_ID, one-to-many: snapshot.LineItem
265 [main] DEBUG org.hibernate.cfg.Configuration - processing native query and ResultSetMapping mappings
281 [main] DEBUG org.hibernate.cfg.NamedSQLQuerySecondPass - Named SQL query: loadLineItem -> select
lineItem.ORDER_ID,
lineItem.SKU,
lineItem.QUANTITY,
DECODE(lineItem.UNITS, 'Einzeln', 'EA', 'Dutzend', 'DZ', 'Paar', 'PR') as UNIT
from
LINE_ITEM lineItem
where
LINE_ITEM.ORDER_ID=:id
281 [main] DEBUG org.hibernate.cfg.NamedSQLQuerySecondPass - Named SQL query: loadLineItems -> select
lineItem.ORDER_ID,
lineItem.SKU,
lineItem.QUANTITY,
DECODE(lineItem.UNITS, 'Einzeln', 'EA', 'Dutzend', 'DZ', 'Paar', 'PR') as UNIT
from
LINE_ITEM lineItem
where
LINE_ITEM.ORDER_ID=:id
281 [main] DEBUG org.hibernate.cfg.Configuration - processing association property references
281 [main] DEBUG org.hibernate.cfg.Configuration - processing foreign key constraints
281 [main] DEBUG org.hibernate.cfg.Configuration - resolving reference to class: snapshot.Order
297 [main] WARN org.hibernate.mapping.RootClass - composite-id class does not override equals(): snapshot.LineItemId
297 [main] WARN org.hibernate.mapping.RootClass - composite-id class does not override hashCode(): snapshot.LineItemId
312 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
312 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 1
312 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
312 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: oracle.jdbc.driver.OracleDriver at URL: jdbc:oracle:thin:@localhost:1521:ORCL
312 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=testuser, password=secret}
312 [main] DEBUG org.hibernate.connection.DriverManagerConnectionProvider - total checked-out connections: 0
312 [main] DEBUG org.hibernate.connection.DriverManagerConnectionProvider - opening new JDBC connection
594 [main] DEBUG org.hibernate.connection.DriverManagerConnectionProvider - created connection to: jdbc:oracle:thin:@localhost:1521:ORCL, Isolation Level: 2
594 [main] DEBUG org.hibernate.connection.DriverManagerConnectionProvider - returning connection to pool, pool size: 1
609 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.Oracle10gDialect
609 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)
609 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
625 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
625 [main] DEBUG org.hibernate.exception.SQLExceptionConverterFactory - Using dialect defined converter
640 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
640 [main] DEBUG org.hibernate.impl.SessionFactoryImpl - Session factory constructed with filter configurations : {}
640 [main] DEBUG org.hibernate.impl.SessionFactoryImpl - instantiating session factory with properties: {java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition, hibernate.connection.password=secret, sun.boot.library.path=C:\Program Files\Java\jdk1.5.0_12\jre\bin, java.vm.version=1.5.0_12-b04, hibernate.connection.username=testuser, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, path.separator=;, java.vm.name=Java HotSpot(TM) Client VM, file.encoding.pkg=sun.io, user.country=US, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=Service Pack 2, java.vm.specification.name=Java Virtual Machine Specification, user.dir=C:\TEMP\hibernate-snapshot-error, java.runtime.version=1.5.0_12-b04, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=C:\Program Files\Java\jdk1.5.0_12\jre\lib\endorsed, os.arch=x86, java.io.tmpdir=C:\DOCUME~1\cars3788\LOCALS~1\Temp\, line.separator=
, java.vm.specification.vendor=Sun Microsystems Inc., user.variant=, os.name=Windows XP, hibernate.jdbc.batch_versioned_data=true, sun.jnu.encoding=Cp1252, java.library.path=C:\Program Files\Java\jdk1.5.0_12\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jre1.5.0_12\bin\client;C:\Program Files\Java\jre1.5.0_12\bin;C:\oracle\product\10.2.0\db_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Java\jdk1.5.0_12\bin;C:\Program Files\Java\apache-maven-2.0.8\bin;C:\Program Files\QuickTime\QTSystem\, java.specification.name=Java Platform API Specification, java.class.version=49.0, hibernate.connection.pool_size=1, sun.management.compiler=HotSpot Client Compiler, os.version=5.1, user.home=C:\Documents and Settings\cars3788, user.timezone=, java.awt.printerjob=sun.awt.windows.WPrinterJob, java.specification.version=1.5, file.encoding=Cp1252, hibernate.format_sql=true, hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver, user.name=cars3788, java.class.path=C:\TEMP\hibernate-snapshot-error\bin;C:\TEMP\hibernate-snapshot-error\lib\antlr-2.7.6.jar;C:\TEMP\hibernate-snapshot-error\lib\asm.jar;C:\TEMP\hibernate-snapshot-error\lib\asm-attrs.jar;C:\TEMP\hibernate-snapshot-error\lib\cglib-2.1.3.jar;C:\TEMP\hibernate-snapshot-error\lib\commons-collections-2.1.1.jar;C:\TEMP\hibernate-snapshot-error\lib\commons-logging-1.0.4.jar;C:\TEMP\hibernate-snapshot-error\lib\dom4j-1.6.1.jar;C:\TEMP\hibernate-snapshot-error\lib\hibernate3.jar;C:\TEMP\hibernate-snapshot-error\lib\jta.jar;C:\TEMP\hibernate-snapshot-error\lib\junit-3.8.1.jar;C:\TEMP\hibernate-snapshot-error\lib\log4j-1.2.11.jar;C:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar;/C:/Program Files/Java/eclipse/configuration/org.eclipse.osgi/bundles/192/1/.cp/;/C:/Program Files/Java/eclipse/configuration/org.eclipse.osgi/bundles/190/1/.cp/, hibernate.bytecode.use_reflection_optimizer=false, hibernate.show_sql=true, java.vm.specification.version=1.0, sun.arch.data.model=32, java.home=C:\Program Files\Java\jdk1.5.0_12\jre, hibernate.connection.url=jdbc:oracle:thin:@localhost:1521:ORCL, hibernate.dialect=org.hibernate.dialect.Oracle10gDialect, java.specification.vendor=Sun Microsystems Inc., user.language=en, awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, java.version=1.5.0_12, hibernate.jdbc.use_streams_for_binary=true, java.ext.dirs=C:\Program Files\Java\jdk1.5.0_12\jre\lib\ext, sun.boot.class.path=C:\Program Files\Java\jdk1.5.0_12\jre\lib\rt.jar;C:\Program Files\Java\jdk1.5.0_12\jre\lib\i18n.jar;C:\Program Files\Java\jdk1.5.0_12\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.5.0_12\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.5.0_12\jre\lib\jce.jar;C:\Program Files\Java\jdk1.5.0_12\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.5.0_12\jre\classes, java.vendor=Sun Microsystems Inc., file.separator=\, java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, hibernate.hbm2ddl.auto=create-drop, sun.cpu.endian=little, sun.io.unicode.encoding=UnicodeLittle, sun.desktop=windows, hibernate.max_fetch_depth=1, sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86}
797 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Static SQL for entity: snapshot.LineItem
797 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Version select: select ORDER_ID, SKU from TBL_LINE_ITEM where ORDER_ID =? and SKU =?
797 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Snapshot select: select lineitem_.ORDER_ID, lineitem_.SKU, lineitem_.QUANTITY as QUANTITY1_, lineitem_.UNIT as UNIT1_ from TBL_LINE_ITEM lineitem_ where lineitem_.ORDER_ID=? and lineitem_.SKU=?
797 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Insert 0: insert into TBL_LINE_ITEM (QUANTITY, UNIT, ORDER_ID, SKU) values (?, DECODE(?, 'EA', 'Einzeln', 'DZ', 'Dutzend', 'PR', 'Paar'), ?, ?)
797 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Update 0: update TBL_LINE_ITEM set QUANTITY = ?, UNIT = DECODE(?, 'EA', 'Einzeln', 'DZ', 'Dutzend', 'PR', 'Paar'), ORDER_ID = ?, SKU = ?) where ORDER_ID = :id and SKU = :sku
797 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Delete 0: delete from TBL_LINE_ITEM where ORDER_ID=? and SKU=?
812 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Static SQL for entity: snapshot.Order
812 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Version select: select ORDER_ID from TBL_ORDER where ORDER_ID =?
812 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Snapshot select: select order_.ORDER_ID, order_.ORDER_DT as ORDER2_0_ from TBL_ORDER order_ where order_.ORDER_ID=?
812 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Insert 0: insert into TBL_ORDER (ORDER_DT, ORDER_ID) values (?, ?)
812 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Update 0: update TBL_ORDER set ORDER_DT=? where ORDER_ID=?
812 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Delete 0: delete from TBL_ORDER where ORDER_ID=?
812 [main] DEBUG org.hibernate.persister.collection.AbstractCollectionPersister - Static SQL for collection: snapshot.Order.lineItems
812 [main] DEBUG org.hibernate.persister.collection.AbstractCollectionPersister - Row insert: update TBL_LINE_ITEM set ORDER_ID=? where ORDER_ID=? and SKU=?
812 [main] DEBUG org.hibernate.persister.collection.AbstractCollectionPersister - Row delete: update TBL_LINE_ITEM set ORDER_ID=null where ORDER_ID=? and ORDER_ID=? and SKU=?
812 [main] DEBUG org.hibernate.persister.collection.AbstractCollectionPersister - One-shot delete: update TBL_LINE_ITEM set ORDER_ID=null where ORDER_ID=?
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for entity snapshot.LineItem: select lineitem0_.ORDER_ID as ORDER1_1_0_, lineitem0_.SKU as SKU1_0_, lineitem0_.QUANTITY as QUANTITY1_0_, lineitem0_.UNIT as UNIT1_0_ from TBL_LINE_ITEM lineitem0_ where lineitem0_.ORDER_ID=? and lineitem0_.SKU=?
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for entity snapshot.LineItem: select lineitem0_.ORDER_ID as ORDER1_1_0_, lineitem0_.SKU as SKU1_0_, lineitem0_.QUANTITY as QUANTITY1_0_, lineitem0_.UNIT as UNIT1_0_ from TBL_LINE_ITEM lineitem0_ where lineitem0_.ORDER_ID=? and lineitem0_.SKU=?
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for entity snapshot.LineItem: select lineitem0_.ORDER_ID as ORDER1_1_0_, lineitem0_.SKU as SKU1_0_, lineitem0_.QUANTITY as QUANTITY1_0_, lineitem0_.UNIT as UNIT1_0_ from TBL_LINE_ITEM lineitem0_ where lineitem0_.ORDER_ID=? and lineitem0_.SKU=? for update
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for entity snapshot.LineItem: select lineitem0_.ORDER_ID as ORDER1_1_0_, lineitem0_.SKU as SKU1_0_, lineitem0_.QUANTITY as QUANTITY1_0_, lineitem0_.UNIT as UNIT1_0_ from TBL_LINE_ITEM lineitem0_ where lineitem0_.ORDER_ID=? and lineitem0_.SKU=? for update nowait
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for entity snapshot.LineItem: select lineitem0_.ORDER_ID as ORDER1_1_0_, lineitem0_.SKU as SKU1_0_, lineitem0_.QUANTITY as QUANTITY1_0_, lineitem0_.UNIT as UNIT1_0_ from TBL_LINE_ITEM lineitem0_ where lineitem0_.ORDER_ID=? and lineitem0_.SKU=? for update nowait
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for action ACTION_MERGE on entity snapshot.LineItem: select lineitem0_.ORDER_ID as ORDER1_1_0_, lineitem0_.SKU as SKU1_0_, lineitem0_.QUANTITY as QUANTITY1_0_, lineitem0_.UNIT as UNIT1_0_ from TBL_LINE_ITEM lineitem0_ where lineitem0_.ORDER_ID=? and lineitem0_.SKU=?
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for action ACTION_REFRESH on entity snapshot.LineItem: select lineitem0_.ORDER_ID as ORDER1_1_0_, lineitem0_.SKU as SKU1_0_, lineitem0_.QUANTITY as QUANTITY1_0_, lineitem0_.UNIT as UNIT1_0_ from TBL_LINE_ITEM lineitem0_ where lineitem0_.ORDER_ID=? and lineitem0_.SKU=?
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for entity snapshot.Order: select order0_.ORDER_ID as ORDER1_0_0_, order0_.ORDER_DT as ORDER2_0_0_ from TBL_ORDER order0_ where order0_.ORDER_ID=?
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for entity snapshot.Order: select order0_.ORDER_ID as ORDER1_0_0_, order0_.ORDER_DT as ORDER2_0_0_ from TBL_ORDER order0_ where order0_.ORDER_ID=?
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for entity snapshot.Order: select order0_.ORDER_ID as ORDER1_0_0_, order0_.ORDER_DT as ORDER2_0_0_ from TBL_ORDER order0_ where order0_.ORDER_ID=? for update
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for entity snapshot.Order: select order0_.ORDER_ID as ORDER1_0_0_, order0_.ORDER_DT as ORDER2_0_0_ from TBL_ORDER order0_ where order0_.ORDER_ID=? for update nowait
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for entity snapshot.Order: select order0_.ORDER_ID as ORDER1_0_0_, order0_.ORDER_DT as ORDER2_0_0_ from TBL_ORDER order0_ where order0_.ORDER_ID=? for update nowait
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for action ACTION_MERGE on entity snapshot.Order: select order0_.ORDER_ID as ORDER1_0_1_, order0_.ORDER_DT as ORDER2_0_1_, lineitems1_.ORDER_ID as ORDER1_3_, lineitems1_.SKU as SKU3_, lineitems1_.ORDER_ID as ORDER1_1_0_, lineitems1_.SKU as SKU1_0_, lineitems1_.QUANTITY as QUANTITY1_0_, lineitems1_.UNIT as UNIT1_0_ from TBL_ORDER order0_ left outer join TBL_LINE_ITEM lineitems1_ on order0_.ORDER_ID=lineitems1_.ORDER_ID where order0_.ORDER_ID=?
844 [main] DEBUG org.hibernate.loader.entity.EntityLoader - Static select for action ACTION_REFRESH on entity snapshot.Order: select order0_.ORDER_ID as ORDER1_0_1_, order0_.ORDER_DT as ORDER2_0_1_, lineitems1_.ORDER_ID as ORDER1_3_, lineitems1_.SKU as SKU3_, lineitems1_.ORDER_ID as ORDER1_1_0_, lineitems1_.SKU as SKU1_0_, lineitems1_.QUANTITY as QUANTITY1_0_, lineitems1_.UNIT as UNIT1_0_ from TBL_ORDER order0_ left outer join TBL_LINE_ITEM lineitems1_ on order0_.ORDER_ID=lineitems1_.ORDER_ID where order0_.ORDER_ID=?
859 [main] DEBUG org.hibernate.impl.SessionFactoryObjectFactory - initializing class SessionFactoryObjectFactory
859 [main] DEBUG org.hibernate.impl.SessionFactoryObjectFactory - registered: 8a8fb3d91833cf8f011833cf90260000 (unnamed)
859 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
859 [main] DEBUG org.hibernate.impl.SessionFactoryImpl - instantiated session factory
859 [main] DEBUG org.hibernate.cfg.Configuration - processing extends queue
859 [main] DEBUG org.hibernate.cfg.Configuration - processing collection mappings
859 [main] DEBUG org.hibernate.cfg.Configuration - processing native query and ResultSetMapping mappings
859 [main] DEBUG org.hibernate.cfg.Configuration - processing association property references
859 [main] DEBUG org.hibernate.cfg.Configuration - processing foreign key constraints
859 [main] DEBUG org.hibernate.cfg.Configuration - resolving reference to class: snapshot.Order
859 [main] DEBUG org.hibernate.cfg.Configuration - processing extends queue
859 [main] DEBUG org.hibernate.cfg.Configuration - processing collection mappings
859 [main] DEBUG org.hibernate.cfg.Configuration - processing native query and ResultSetMapping mappings
859 [main] DEBUG org.hibernate.cfg.Configuration - processing association property references
859 [main] DEBUG org.hibernate.cfg.Configuration - processing foreign key constraints
859 [main] DEBUG org.hibernate.cfg.Configuration - resolving reference to class: snapshot.Order
859 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - Running hbm2ddl schema export
859 [main] DEBUG org.hibernate.tool.hbm2ddl.SchemaExport - import file not found: /import.sql
859 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - exporting generated schema to database
859 [main] DEBUG org.hibernate.connection.DriverManagerConnectionProvider - total checked-out connections: 0
859 [main] DEBUG org.hibernate.connection.DriverManagerConnectionProvider - using pooled JDBC connection, pool size: 0
922 [main] DEBUG org.hibernate.tool.hbm2ddl.SchemaExport -
drop table TBL_LINE_ITEM cascade constraints
3265 [main] DEBUG org.hibernate.tool.hbm2ddl.SchemaExport -
drop table TBL_ORDER cascade constraints
3359 [main] DEBUG org.hibernate.tool.hbm2ddl.SchemaExport -
create table TBL_LINE_ITEM (
ORDER_ID number(19,0) not null,
SKU varchar2(8 char) not null,
QUANTITY number(10,0) not null,
UNIT varchar2(16 char) not null,
primary key (ORDER_ID, SKU)
)
3781 [main] DEBUG org.hibernate.tool.hbm2ddl.SchemaExport -
create table TBL_ORDER (
ORDER_ID number(19,0) not null,
ORDER_DT timestamp not null,
primary key (ORDER_ID)
)
3828 [main] DEBUG org.hibernate.tool.hbm2ddl.SchemaExport -
alter table TBL_LINE_ITEM
add constraint FK56B92D1D99ABF630
foreign key (ORDER_ID)
references TBL_ORDER
3953 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - schema export complete
3953 [main] DEBUG org.hibernate.connection.DriverManagerConnectionProvider - returning connection to pool, pool size: 1
3953 [main] DEBUG org.hibernate.cfg.Configuration - processing extends queue
3953 [main] DEBUG org.hibernate.cfg.Configuration - processing collection mappings
3953 [main] DEBUG org.hibernate.cfg.Configuration - processing native query and ResultSetMapping mappings
3953 [main] DEBUG org.hibernate.cfg.Configuration - processing association property references
3953 [main] DEBUG org.hibernate.cfg.Configuration - processing foreign key constraints
3953 [main] DEBUG org.hibernate.cfg.Configuration - resolving reference to class: snapshot.Order
3953 [main] DEBUG org.hibernate.cfg.Configuration - processing extends queue
3953 [main] DEBUG org.hibernate.cfg.Configuration - processing collection mappings
3953 [main] DEBUG org.hibernate.cfg.Configuration - processing native query and ResultSetMapping mappings
3953 [main] DEBUG org.hibernate.cfg.Configuration - processing association property references
3953 [main] DEBUG org.hibernate.cfg.Configuration - processing foreign key constraints
3953 [main] DEBUG org.hibernate.cfg.Configuration - resolving reference to class: snapshot.Order
3953 [main] DEBUG org.hibernate.impl.SessionFactoryImpl - Checking 0 named HQL queries
3953 [main] DEBUG org.hibernate.impl.SessionFactoryImpl - Checking 2 named SQL queries
3953 [main] DEBUG org.hibernate.impl.SessionFactoryImpl - Checking named SQL query: loadLineItem
3953 [main] DEBUG org.hibernate.engine.query.QueryPlanCache - unable to locate native-sql query plan in cache; generating (select
lineItem.ORDER_ID,
lineItem.SKU,
lineItem.QUANTITY,
DECODE(lineItem.UNITS, 'Einzeln', 'EA', 'Dutzend', 'DZ', 'Paar', 'PR') as UNIT
from
LINE_ITEM lineItem
where
LINE_ITEM.ORDER_ID=:id)
4031 [main] DEBUG org.hibernate.loader.custom.sql.SQLCustomQuery - starting processing of sql query [select
lineItem.ORDER_ID,
lineItem.SKU,
lineItem.QUANTITY,
DECODE(lineItem.UNITS, 'Einzeln', 'EA', 'Dutzend', 'DZ', 'Paar', 'PR') as UNIT
from
LINE_ITEM lineItem
where
LINE_ITEM.ORDER_ID=:id]
4047 [main] DEBUG org.hibernate.impl.SessionFactoryImpl - Checking named SQL query: loadLineItems
4047 [main] DEBUG org.hibernate.engine.query.QueryPlanCache - unable to locate native-sql query plan in cache; generating (select
lineItem.ORDER_ID,
lineItem.SKU,
lineItem.QUANTITY,
DECODE(lineItem.UNITS, 'Einzeln', 'EA', 'Dutzend', 'DZ', 'Paar', 'PR') as UNIT
from
LINE_ITEM lineItem
where
LINE_ITEM.ORDER_ID=:id)
4047 [main] DEBUG org.hibernate.loader.custom.sql.SQLCustomQuery - starting processing of sql query [select
lineItem.ORDER_ID,
lineItem.SKU,
lineItem.QUANTITY,
DECODE(lineItem.UNITS, 'Einzeln', 'EA', 'Dutzend', 'DZ', 'Paar', 'PR') as UNIT
from
LINE_ITEM lineItem
where
LINE_ITEM.ORDER_ID=:id]
4047 [main] DEBUG org.hibernate.loader.custom.sql.SQLQueryReturnProcessor - mapping alias [lineItems] to collection-suffix [0__]
4047 [main] DEBUG org.hibernate.loader.custom.sql.SQLQueryReturnProcessor - mapping alias [lineItems] to entity-suffix [0_]
4125 [main] DEBUG org.hibernate.impl.SessionImpl - opened session at timestamp: 12034600869
4125 [main] DEBUG org.hibernate.engine.IdentifierValue - id unsaved-value: 0
4125 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - transient instance of: snapshot.Order
4140 [main] DEBUG org.hibernate.event.def.DefaultSaveOrUpdateEventListener - saving transient instance
4140 [main] DEBUG org.hibernate.id.IncrementGenerator - fetching initial value: select max(ORDER_ID) from TBL_ORDER
4140 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
4140 [main] DEBUG org.hibernate.jdbc.ConnectionManager - opening JDBC connection
4140 [main] DEBUG org.hibernate.connection.DriverManagerConnectionProvider - total checked-out connections: 0
4140 [main] DEBUG org.hibernate.connection.DriverManagerConnectionProvider - using pooled JDBC connection, pool size: 0
4140 [main] DEBUG org.hibernate.SQL -
select
max(ORDER_ID)
from
TBL_ORDER
Hibernate:
select
max(ORDER_ID)
from
TBL_ORDER
4140 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - preparing statement
4265 [main] DEBUG org.hibernate.id.IncrementGenerator - first free id: 1
4265 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
4265 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - closing statement
4265 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - generated identifier: 1, using strategy: org.hibernate.id.IncrementGenerator
4265 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - saving [snapshot.Order#1]
4265 [main] DEBUG org.hibernate.engine.Cascade - processing cascade ACTION_SAVE_UPDATE for: snapshot.Order
4265 [main] DEBUG org.hibernate.engine.Cascade - done processing cascade ACTION_SAVE_UPDATE for: snapshot.Order
4297 [main] DEBUG org.hibernate.event.def.WrapVisitor - Wrapped collection in role: snapshot.Order.lineItems
4297 [main] DEBUG org.hibernate.engine.Cascade - processing cascade ACTION_SAVE_UPDATE for: snapshot.Order
4297 [main] DEBUG org.hibernate.engine.Cascade - cascade ACTION_SAVE_UPDATE for collection: snapshot.Order.lineItems
4297 [main] DEBUG org.hibernate.engine.CascadingAction - cascading to saveOrUpdate: snapshot.LineItem
4297 [main] DEBUG org.hibernate.engine.IdentifierValue - id unsaved-value strategy UNDEFINED
4297 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Getting current persistent state for: [snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=12345678}]
4297 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
4297 [main] DEBUG org.hibernate.SQL -
select
lineitem_.ORDER_ID,
lineitem_.SKU,
lineitem_.QUANTITY as QUANTITY1_,
lineitem_.UNIT as UNIT1_
from
TBL_LINE_ITEM lineitem_
where
lineitem_.ORDER_ID=?
and lineitem_.SKU=?
Hibernate:
select
lineitem_.ORDER_ID,
lineitem_.SKU,
lineitem_.QUANTITY as QUANTITY1_,
lineitem_.UNIT as UNIT1_
from
TBL_LINE_ITEM lineitem_
where
lineitem_.ORDER_ID=?
and lineitem_.SKU=?
4297 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - preparing statement
4297 [main] DEBUG org.hibernate.type.LongType - binding '1' to parameter: 1
4297 [main] DEBUG org.hibernate.type.StringType - binding '12345678' to parameter: 2
4312 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
4312 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - closing statement
4312 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - transient instance of: snapshot.LineItem
4312 [main] DEBUG org.hibernate.event.def.DefaultSaveOrUpdateEventListener - saving transient instance
4312 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - generated identifier: component[order,sku]{order=snapshot.Order#1, sku=12345678}, using strategy: org.hibernate.id.Assigned
4312 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - saving [snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=12345678}]
4312 [main] DEBUG org.hibernate.engine.CascadingAction - cascading to saveOrUpdate: snapshot.LineItem
4312 [main] DEBUG org.hibernate.engine.IdentifierValue - id unsaved-value strategy UNDEFINED
4312 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Getting current persistent state for: [snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=87654321}]
4312 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
4312 [main] DEBUG org.hibernate.SQL -
select
lineitem_.ORDER_ID,
lineitem_.SKU,
lineitem_.QUANTITY as QUANTITY1_,
lineitem_.UNIT as UNIT1_
from
TBL_LINE_ITEM lineitem_
where
lineitem_.ORDER_ID=?
and lineitem_.SKU=?
Hibernate:
select
lineitem_.ORDER_ID,
lineitem_.SKU,
lineitem_.QUANTITY as QUANTITY1_,
lineitem_.UNIT as UNIT1_
from
TBL_LINE_ITEM lineitem_
where
lineitem_.ORDER_ID=?
and lineitem_.SKU=?
4312 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - preparing statement
4312 [main] DEBUG org.hibernate.type.LongType - binding '1' to parameter: 1
4312 [main] DEBUG org.hibernate.type.StringType - binding '87654321' to parameter: 2
4312 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
4312 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - closing statement
4312 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - transient instance of: snapshot.LineItem
4312 [main] DEBUG org.hibernate.event.def.DefaultSaveOrUpdateEventListener - saving transient instance
4312 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - generated identifier: component[order,sku]{order=snapshot.Order#1, sku=87654321}, using strategy: org.hibernate.id.Assigned
4312 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - saving [snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=87654321}]
4312 [main] DEBUG org.hibernate.engine.Cascade - done cascade ACTION_SAVE_UPDATE for collection: snapshot.Order.lineItems
4312 [main] DEBUG org.hibernate.engine.Cascade - done processing cascade ACTION_SAVE_UPDATE for: snapshot.Order
4312 [main] DEBUG org.hibernate.event.def.AbstractFlushingEventListener - flushing session
4312 [main] DEBUG org.hibernate.event.def.AbstractFlushingEventListener - processing flush-time cascades
4312 [main] DEBUG org.hibernate.engine.Cascade - processing cascade ACTION_SAVE_UPDATE for: snapshot.Order
4312 [main] DEBUG org.hibernate.engine.Cascade - cascade ACTION_SAVE_UPDATE for collection: snapshot.Order.lineItems
4312 [main] DEBUG org.hibernate.engine.CascadingAction - cascading to saveOrUpdate: snapshot.LineItem
4312 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - persistent instance of: snapshot.LineItem
4312 [main] DEBUG org.hibernate.event.def.DefaultSaveOrUpdateEventListener - ignoring persistent instance
4312 [main] DEBUG org.hibernate.event.def.DefaultSaveOrUpdateEventListener - object already associated with session: [snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=12345678}]
4312 [main] DEBUG org.hibernate.engine.CascadingAction - cascading to saveOrUpdate: snapshot.LineItem
4312 [main] DEBUG org.hibernate.event.def.AbstractSaveEventListener - persistent instance of: snapshot.LineItem
4312 [main] DEBUG org.hibernate.event.def.DefaultSaveOrUpdateEventListener - ignoring persistent instance
4312 [main] DEBUG org.hibernate.event.def.DefaultSaveOrUpdateEventListener - object already associated with session: [snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=87654321}]
4312 [main] DEBUG org.hibernate.engine.Cascade - done cascade ACTION_SAVE_UPDATE for collection: snapshot.Order.lineItems
4312 [main] DEBUG org.hibernate.engine.Cascade - done processing cascade ACTION_SAVE_UPDATE for: snapshot.Order
4312 [main] DEBUG org.hibernate.event.def.AbstractFlushingEventListener - dirty checking collections
4312 [main] DEBUG org.hibernate.event.def.AbstractFlushingEventListener - Flushing entities and processing referenced collections
4312 [main] DEBUG org.hibernate.engine.Collections - Collection found: [snapshot.Order.lineItems#1], was: [<unreferenced>] (initialized)
4312 [main] DEBUG org.hibernate.event.def.AbstractFlushingEventListener - Processing unreferenced collections
4312 [main] DEBUG org.hibernate.event.def.AbstractFlushingEventListener - Scheduling collection removes/(re)creates/updates
4328 [main] DEBUG org.hibernate.event.def.AbstractFlushingEventListener - Flushed: 3 insertions, 0 updates, 0 deletions to 3 objects
4328 [main] DEBUG org.hibernate.event.def.AbstractFlushingEventListener - Flushed: 1 (re)creations, 0 updates, 0 removals to 1 collections
4328 [main] DEBUG org.hibernate.pretty.Printer - listing entities:
4328 [main] DEBUG org.hibernate.pretty.Printer - snapshot.Order{lineItems=[snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=12345678}, snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=87654321}], orderDate=2008-02-19 14:28:07, id=1}
4344 [main] DEBUG org.hibernate.pretty.Printer - snapshot.LineItem{units=Each, quantity=2, id=component[order,sku]{order=snapshot.Order#1, sku=12345678}}
4344 [main] DEBUG org.hibernate.pretty.Printer - snapshot.LineItem{units=Each, quantity=1, id=component[order,sku]{order=snapshot.Order#1, sku=87654321}}
4344 [main] DEBUG org.hibernate.event.def.AbstractFlushingEventListener - executing flush
4344 [main] DEBUG org.hibernate.jdbc.ConnectionManager - registering flush begin
4344 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Inserting entity: [snapshot.Order#1]
4344 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
4344 [main] DEBUG org.hibernate.SQL -
insert
into
TBL_ORDER
(ORDER_DT, ORDER_ID)
values
(?, ?)
Hibernate:
insert
into
TBL_ORDER
(ORDER_DT, ORDER_ID)
values
(?, ?)
4344 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - preparing statement
4344 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Dehydrating entity: [snapshot.Order#1]
4344 [main] DEBUG org.hibernate.type.TimestampType - binding '2008-02-19 14:28:07' to parameter: 1
4344 [main] DEBUG org.hibernate.type.LongType - binding '1' to parameter: 2
4344 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Inserting entity: [snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=12345678}]
4344 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - Executing batch size: 1
4344 [main] DEBUG org.hibernate.jdbc.Expectations - success of batch update unknown: 0
4344 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
4344 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - closing statement
4344 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
4344 [main] DEBUG org.hibernate.SQL -
insert
into
TBL_LINE_ITEM
(QUANTITY, UNIT, ORDER_ID, SKU)
values
(?, DECODE(?, 'EA', 'Einzeln', 'DZ', 'Dutzend', 'PR', 'Paar'), ?, ?)
Hibernate:
insert
into
TBL_LINE_ITEM
(QUANTITY, UNIT, ORDER_ID, SKU)
values
(?, DECODE(?, 'EA', 'Einzeln', 'DZ', 'Dutzend', 'PR', 'Paar'), ?, ?)
4344 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - preparing statement
4344 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Dehydrating entity: [snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=12345678}]
4344 [main] DEBUG org.hibernate.type.IntegerType - binding '2' to parameter: 1
4344 [main] DEBUG org.hibernate.type.LongType - binding '1' to parameter: 3
4344 [main] DEBUG org.hibernate.type.StringType - binding '12345678' to parameter: 4
4344 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Inserting entity: [snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=87654321}]
4344 [main] DEBUG org.hibernate.jdbc.AbstractBatcher - reusing prepared statement
4344 [main] DEBUG org.hibernate.SQL -
insert
into
TBL_LINE_ITEM
(QUANTITY, UNIT, ORDER_ID, SKU)
values
(?, DECODE(?, 'EA', 'Einzeln', 'DZ', 'Dutzend', 'PR', 'Paar'), ?, ?)
Hibernate:
insert
into
TBL_LINE_ITEM
(QUANTITY, UNIT, ORDER_ID, SKU)
values
(?, DECODE(?, 'EA', 'Einzeln', 'DZ', 'Dutzend', 'PR', 'Paar'), ?, ?)
4344 [main] DEBUG org.hibernate.persister.entity.AbstractEntityPersister - Dehydrating entity: [snapshot.LineItem#component[order,sku]{order=snapshot.Order#1, sku=87654321}]
4344 [main] DEBUG org.hibernate.type.IntegerType - binding '1' to parameter: 1
4344 [main] DEBUG org.hibernate.type.LongType - binding '1' to parameter: 3
4344 [main&


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.