+
+
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* @author Gavin King
*/
public abstract class AbstractPersistentCollection implements Serializable, PersistentCollection {
- private static final long serialVersionUID = -7238232378593030571L;
private static final Logger log = Logger.getLogger( AbstractPersistentCollection.class );
+ private static final long serialVersionUID = -7238232378593030571L;
+
private transient SessionImplementor session;
private boolean initialized;
private transient List<DelayedOperation> operationQueue;
return true;
}
else {
-// boolean isExtraLazy = withTemporarySessionIfNeeded(
-// new LazyInitializationWork<Boolean>() {
-// @Override
-// public Boolean doWork() {
-// CollectionEntry entry = session.getPersistenceContext().getCollectionEntry( AbstractPersistentCollection.this );
-//
-// if ( entry != null ) {
-// CollectionPersister persister = entry.getLoadedPersister();
-// if ( persister.isExtraLazy() ) {
-// if ( hasQueuedOperations() ) {
-// session.flush();
-// }
-// cachedSize = persister.getSize( entry.getLoadedKey(), session );
-// return true;
-// }
-// else {
-// read();
-// }
-// }
-// else{
-// throwLazyInitializationExceptionIfNotConnected();
-// }
-// return false;
- read();
- return true;
-// }
-// }
-// );
-// if ( isExtraLazy ) {
-// return true;
-// }
+ boolean isExtraLazy = withTemporarySessionIfNeeded(
+ new LazyInitializationWork<Boolean>() {
+ @Override
+ public Boolean doWork() {
+ CollectionEntry entry = session.getPersistenceContext().getCollectionEntry( AbstractPersistentCollection.this );
+
+ if ( entry != null ) {
+ CollectionPersister persister = entry.getLoadedPersister();
+ if ( persister.isExtraLazy() ) {
+ if ( hasQueuedOperations() ) {
+ session.flush();
+ }
+ cachedSize = persister.getSize( entry.getLoadedKey(), session );
+ return true;
+ }
+ else {
+ read();
+ }
+ }
+ else{
+ throwLazyInitializationExceptionIfNotConnected();
+ }
+ return false;
+ }
+ }
+ );
+ if ( isExtraLazy ) {
+ return true;
+ }
}
}
return false;