Changeset 2809


Ignore:
Timestamp:
Oct 26, 2006, 10:59:58 AM (17 years ago)
Author:
Nicklas Nordborg
Message:

Preload features using a stateless session to decrease memory usage.

Location:
trunk/src/core
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/core/common-queries.xml

    r2733 r2809  
    12301230  </query>
    12311231
     1232  <query id="COUNT_FEATURES_FOR_ARRAYDESIGN" type="HQL">
     1233    <sql>
     1234      SELECT count(*)
     1235      FROM FeatureData f
     1236      WHERE f.arrayDesignBlock.arrayDesign = :arrayDesign
     1237    </sql>
     1238    <description>
     1239      A Hibernate query that counts the number of
     1240      features on a given array design
     1241    </description>
     1242  </query>
     1243
     1244
    12321245  <query id="COUNT_CHILDWELLS_FOR_WELL" type="HQL">
    12331246    <sql>
  • trunk/src/core/net/sf/basedb/core/RawDataBatcher.java

    r2751 r2809  
    166166    if (arrayDesign != null && arrayDesign.getHasFeatures())
    167167    {
    168       // TODO - use a predefined query to count featues instead because risk of PermissionDeniedException for call: getArrayDesign()
    169       preloaded = new HashMap<FeatureCoordinate, FeatureData>((int)rawBioAssay.getArrayDesign().getFeatures().count(dc));
    170       org.hibernate.Query preloadFeatures = HibernateUtil.getPredefinedQuery(dc.getHibernateSession(), "PRELOAD_FEATURES");
     168      org.hibernate.Query query = HibernateUtil.getPredefinedQuery(dc.getStatelessSession(), "COUNT_FEATURES_FOR_ARRAYDESIGN");
     169      /*
     170        SELECT count(*)
     171        FROM FeatureData f
     172        WHERE f.arrayDesignBlock.arrayDesign = :arrayDesign
     173      */
     174      query.setInteger("arrayDesign", arrayDesign.getId());
     175      int numFeatures = HibernateUtil.loadData(Long.class, query).intValue();
     176      preloaded = new HashMap<FeatureCoordinate, FeatureData>(numFeatures);
     177      query = HibernateUtil.getPredefinedQuery(dc.getStatelessSession(), "PRELOAD_FEATURES");
    171178      /*
    172179        SELECT f
     
    176183        WHERE b.arrayDesign = :arrayDesign
    177184      */
    178       preloadFeatures.setInteger("arrayDesign", arrayDesign.getId());
    179       ScrollIterator<FeatureData> si = HibernateUtil.loadIterator(FeatureData.class, preloadFeatures);
     185      query.setInteger("arrayDesign", arrayDesign.getId());
     186      ScrollIterator<FeatureData> si = HibernateUtil.loadIterator(FeatureData.class, query);
    180187      while (si.hasNext())
    181188      {
  • trunk/src/core/net/sf/basedb/core/data/ArrayDesignBlockData.java

    r2314 r2809  
    3535  @see <a href="../../../../../../../development/overview/data/slides.html">Array LIMS - slides overview</a>
    3636  @base.modified $Date$
    37   @hibernate.class table="`ArrayDesignBlocks`" lazy="true"
     37  @hibernate.class table="`ArrayDesignBlocks`" lazy="false"
    3838*/
    3939public class ArrayDesignBlockData
  • trunk/src/core/net/sf/basedb/core/data/ArrayDesignData.java

    r2392 r2809  
    3535  @see <a href="../../../../../../../development/overview/data/slides.html">Array LIMS - slides overview</a>
    3636  @base.modified $Date$
    37   @hibernate.class table="`ArrayDesigns`" lazy="false"
     37  @hibernate.class table="`ArrayDesigns`" lazy="true"
    3838*/
    3939public class ArrayDesignData
Note: See TracChangeset for help on using the changeset viewer.