mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V2.2 to HEAD
10963: Merged DEV/LARGE_COLLECTION_PROPERTIES_2.2.1 to V2.2 - PersonService: Lucene removal - Lucene optimizations (in progress) - Multi-valued and locale-specific properties persisted in alf_node_properties - Removal of unused AVM tables 10987: Oracle dialects and enhanced SQL patch support - Only support Alfresco's 9i and 10g dialects (with auto-switching) - SQL script patches can now apply selectively to ranges 11007: Test to check cached retrieval of QNames git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@11206 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -25,12 +25,8 @@
|
||||
package org.alfresco.repo.domain.hibernate;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.repo.domain.Node;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.hibernate.CacheMode;
|
||||
import org.hibernate.Criteria;
|
||||
@@ -38,25 +34,23 @@ import org.hibernate.EntityMode;
|
||||
import org.hibernate.FetchMode;
|
||||
import org.hibernate.FlushMode;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.criterion.Projections;
|
||||
import org.hibernate.criterion.Property;
|
||||
import org.hibernate.criterion.Restrictions;
|
||||
import org.hibernate.engine.EntityKey;
|
||||
import org.hibernate.metadata.ClassMetadata;
|
||||
import org.hibernate.metadata.CollectionMetadata;
|
||||
import org.hibernate.stat.SessionStatistics;
|
||||
import org.hibernate.stat.Statistics;
|
||||
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
|
||||
|
||||
/**
|
||||
* Pre-populates <b>Node</b> entities for a given set of references.
|
||||
*
|
||||
* @author andyh
|
||||
* @since 3.0
|
||||
*/
|
||||
public class HibernateL1CacheBulkLoader extends HibernateDaoSupport implements BulkLoader
|
||||
{
|
||||
public void loadIntoCache(Collection<NodeRef> nodeRefs)
|
||||
{
|
||||
// TODO: only do if dirty.
|
||||
//getSession().flush();
|
||||
Session session = getSession();
|
||||
DirtySessionMethodInterceptor.flushSession(session);
|
||||
|
||||
String[] guids = new String[nodeRefs.size()];
|
||||
int index = 0;
|
||||
@@ -65,10 +59,10 @@ public class HibernateL1CacheBulkLoader extends HibernateDaoSupport implements B
|
||||
guids[index++] = nodeRef.getId();
|
||||
}
|
||||
|
||||
Criteria criteria = getSession().createCriteria(NodeStatusImpl.class, "status");
|
||||
Criteria criteria = getSession().createCriteria(NodeImpl.class, "node");
|
||||
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
|
||||
criteria.add(Restrictions.in("key.guid", guids));
|
||||
criteria.createAlias("status.node", "node");
|
||||
criteria.add(Restrictions.in("uuid", guids));
|
||||
criteria.createAlias("node.store", "store");
|
||||
criteria.setFetchMode("node.aspects", FetchMode.SELECT);
|
||||
criteria.setFetchMode("node.properties", FetchMode.JOIN);
|
||||
criteria.setFetchMode("node.store", FetchMode.SELECT);
|
||||
@@ -77,10 +71,10 @@ public class HibernateL1CacheBulkLoader extends HibernateDaoSupport implements B
|
||||
|
||||
criteria.list();
|
||||
|
||||
criteria = getSession().createCriteria(NodeStatusImpl.class, "status");
|
||||
criteria = getSession().createCriteria(NodeImpl.class, "node");
|
||||
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
|
||||
criteria.add(Restrictions.in("key.guid", guids));
|
||||
criteria.createAlias("status.node", "node");
|
||||
criteria.add(Restrictions.in("uuid", guids));
|
||||
criteria.createAlias("node.store", "store");
|
||||
criteria.setFetchMode("node.aspects", FetchMode.JOIN);
|
||||
criteria.setFetchMode("node.properties", FetchMode.SELECT);
|
||||
criteria.setFetchMode("node.store", FetchMode.SELECT);
|
||||
@@ -88,10 +82,9 @@ public class HibernateL1CacheBulkLoader extends HibernateDaoSupport implements B
|
||||
criteria.setFlushMode(FlushMode.MANUAL);
|
||||
|
||||
criteria.list();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void clear()
|
||||
{
|
||||
getSession().flush();
|
||||
|
Reference in New Issue
Block a user