working on struts/hibernate for content-admin
[mir.git] / source / mir / core / service / storage / StorageService.java
index 03b9ad4..d81e07f 100755 (executable)
@@ -32,6 +32,7 @@
  
 package mir.core.service.storage;
 
+import java.util.Iterator;
 import java.util.List;
 
 import mir.config.MirPropertiesConfiguration;
@@ -48,7 +49,7 @@ import net.sf.hibernate.expression.Order;
  * 
  * StorageService
  * @author idefix
- * @version $Id: StorageService.java,v 1.7 2003/09/30 19:27:10 idfx Exp $
+ * @version $Id: StorageService.java,v 1.8 2003/12/20 20:27:09 idfx Exp $
  */
 public abstract class StorageService {
        private final int defaultLimit;
@@ -86,6 +87,11 @@ public abstract class StorageService {
        public List list(final int offset, final Expression expression){
                return list(offset, defaultLimit, expression);
        }       
+  
+  public List list(final int offset, final Expression expression,
+    final Order order){
+    return list(offset, defaultLimit, expression, order);
+  }
        
        public List list(final int offset, final int limit, 
                final Expression expression) {
@@ -122,6 +128,9 @@ public abstract class StorageService {
                                criteria.setFirstResult(offset)
                                        .setMaxResults(limit);
                                List returnList = criteria.list();
+                               for(Iterator iterator = returnList.iterator(); iterator.hasNext();){
+                                       initializeLazyCollections(iterator.next());
+                               }
                                transaction.commit();
                                return returnList;
                        } catch (HibernateException e) {
@@ -152,6 +161,9 @@ public abstract class StorageService {
                                transaction = session.beginTransaction();
                                Criteria criteria = session.createCriteria(objectClass);
                                List returnList = criteria.list();
+                               for(Iterator iterator = returnList.iterator(); iterator.hasNext();){
+                                       initializeLazyCollections(iterator.next());
+                               }
                                transaction.commit();
                                return returnList;
                        } catch (HibernateException e) {
@@ -212,9 +224,9 @@ public abstract class StorageService {
                        Transaction transaction = null;
                        try {
                                session = sessionHolder.currentSession();
-                               //transaction = session.beginTransaction();
+                               transaction = session.beginTransaction();
                                Integer newid = (Integer)session.save(newObject);
-                               //transaction.commit();
+                               transaction.commit();
                                return newid;
                        } catch (HibernateException e) {
                                if(transaction != null){