From: <one...@us...> - 2003-02-19 02:02:45
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl In directory sc8-pr-cvs1:/tmp/cvs-serv6974/impl Modified Files: SessionFactoryImpl.java SessionImpl.java Log Message: fixed a problem in ObjectType fixed a bug where PreparedStatements were returned to cache with setMaxRows() still set Index: SessionFactoryImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/SessionFactoryImpl.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** SessionFactoryImpl.java 16 Feb 2003 01:55:05 -0000 1.11 --- SessionFactoryImpl.java 19 Feb 2003 02:02:09 -0000 1.12 *************** *** 540,543 **** --- 540,545 ---- public void closePreparedStatement(PreparedStatement ps) throws SQLException { if (stCache!=null) { + ps.setMaxRows(0); + ps.setFetchSize(0); stCache.closePreparedStatement(ps); } Index: SessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/SessionImpl.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** SessionImpl.java 16 Feb 2003 01:55:05 -0000 1.21 --- SessionImpl.java 19 Feb 2003 02:02:10 -0000 1.22 *************** *** 719,723 **** return null; } ! else if ( type.isEntityType() ) { return ( isTransient(value, earlyInsert, self) ) ? null : value; } --- 719,723 ---- return null; } ! else if ( type.isEntityType() || type.isObjectType() ) { return ( isTransient(value, earlyInsert, self) ) ? null : value; } *************** *** 2112,2116 **** EntityEntry entry = getEntry(object); return (entry!=null) ? entry.id : null; ! //return getPersister(object).getID(object); } } --- 2112,2153 ---- EntityEntry entry = getEntry(object); return (entry!=null) ? entry.id : null; ! } ! } ! ! public Serializable getEntityIdentifierIfNotUnsaved(Object object) throws HibernateException { ! if (object == null) { ! return null; ! } ! else { ! if (object instanceof HibernateProxy) { ! return HibernateProxyHelper.getLazyInitializer( (HibernateProxy) object ).getIdentifier(); ! } ! else { ! ! EntityEntry entry = getEntry(object); ! if (entry!=null) { ! return entry.id; ! } ! else { ! ClassPersister persister = getPersister(object); ! Serializable id; ! try { ! // we only allow this case to support Session.update() ! id = persister.getIdentifier(object); ! } ! catch (HibernateException he) { ! // transient instance with no identifier property ! id = null; ! } ! ! Boolean isUnsaved = (id==null) ? Boolean.TRUE : interceptor.isUnsaved(object); ! if ( ( isUnsaved!=null && isUnsaved.booleanValue() ) || persister.isUnsaved(id) ) { ! throw new HibernateException( ! "object references an unsaved transient instance - save the transient instance before flushing" ! ); ! } ! return id; ! } ! } } } |