mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Cleaned up and generalized purported EnhancerByCGLIB workaround.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4523 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -42,12 +42,10 @@ import org.alfresco.service.cmr.avm.LayeringDescriptor;
|
|||||||
import org.alfresco.service.cmr.avm.VersionDescriptor;
|
import org.alfresco.service.cmr.avm.VersionDescriptor;
|
||||||
import org.alfresco.service.cmr.repository.ContentData;
|
import org.alfresco.service.cmr.repository.ContentData;
|
||||||
import org.alfresco.service.cmr.repository.ContentReader;
|
import org.alfresco.service.cmr.repository.ContentReader;
|
||||||
import org.alfresco.service.cmr.repository.ContentService;
|
|
||||||
import org.alfresco.service.cmr.repository.ContentWriter;
|
import org.alfresco.service.cmr.repository.ContentWriter;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.util.Pair;
|
import org.alfresco.util.Pair;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.hibernate.proxy.HibernateProxy;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This or AVMStore are
|
* This or AVMStore are
|
||||||
@@ -1108,11 +1106,6 @@ public class AVMRepository
|
|||||||
private AVMStore getAVMStoreByName(String name)
|
private AVMStore getAVMStoreByName(String name)
|
||||||
{
|
{
|
||||||
AVMStore store = AVMDAOs.Instance().fAVMStoreDAO.getByName(name);
|
AVMStore store = AVMDAOs.Instance().fAVMStoreDAO.getByName(name);
|
||||||
if (store instanceof HibernateProxy)
|
|
||||||
{
|
|
||||||
store =
|
|
||||||
(AVMStore)((HibernateProxy)store).getHibernateLazyInitializer().getImplementation();
|
|
||||||
}
|
|
||||||
return store;
|
return store;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
package org.alfresco.repo.avm.hibernate;
|
package org.alfresco.repo.avm.hibernate;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -26,6 +27,7 @@ import org.alfresco.repo.avm.AVMStore;
|
|||||||
import org.alfresco.repo.avm.AVMStoreDAO;
|
import org.alfresco.repo.avm.AVMStoreDAO;
|
||||||
import org.alfresco.repo.avm.AVMStoreImpl;
|
import org.alfresco.repo.avm.AVMStoreImpl;
|
||||||
import org.hibernate.Query;
|
import org.hibernate.Query;
|
||||||
|
import org.hibernate.proxy.HibernateProxy;
|
||||||
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
|
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -75,7 +77,13 @@ class AVMStoreDAOHibernate extends HibernateDaoSupport implements
|
|||||||
public List<AVMStore> getAll()
|
public List<AVMStore> getAll()
|
||||||
{
|
{
|
||||||
Query query = getSession().createQuery("from AVMStoreImpl r");
|
Query query = getSession().createQuery("from AVMStoreImpl r");
|
||||||
return (List<AVMStore>)query.list();
|
List<AVMStore> result = (List<AVMStore>)query.list();
|
||||||
|
List<AVMStore> ret = new ArrayList<AVMStore>(result.size());
|
||||||
|
for (AVMStore store : result)
|
||||||
|
{
|
||||||
|
ret.add(forceNonLazy(store));
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -92,7 +100,7 @@ class AVMStoreDAOHibernate extends HibernateDaoSupport implements
|
|||||||
}
|
}
|
||||||
if (id != null)
|
if (id != null)
|
||||||
{
|
{
|
||||||
return (AVMStore)getSession().get(AVMStoreImpl.class, id);
|
return forceNonLazy((AVMStore)getSession().get(AVMStoreImpl.class, id));
|
||||||
}
|
}
|
||||||
Query query = getSession().createQuery("from AVMStoreImpl st " +
|
Query query = getSession().createQuery("from AVMStoreImpl st " +
|
||||||
"where st.name = :name");
|
"where st.name = :name");
|
||||||
@@ -105,7 +113,7 @@ class AVMStoreDAOHibernate extends HibernateDaoSupport implements
|
|||||||
fNameCache.put(name, result.getId());
|
fNameCache.put(name, result.getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return forceNonLazy(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -118,7 +126,7 @@ class AVMStoreDAOHibernate extends HibernateDaoSupport implements
|
|||||||
Query query = getSession().createQuery("from AVMStoreImpl st " +
|
Query query = getSession().createQuery("from AVMStoreImpl st " +
|
||||||
"where st.root = :root");
|
"where st.root = :root");
|
||||||
query.setEntity("root", root);
|
query.setEntity("root", root);
|
||||||
return (AVMStore)query.uniqueResult();
|
return forceNonLazy((AVMStore)query.uniqueResult());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -135,7 +143,8 @@ class AVMStoreDAOHibernate extends HibernateDaoSupport implements
|
|||||||
*/
|
*/
|
||||||
public AVMStore getByID(long id)
|
public AVMStore getByID(long id)
|
||||||
{
|
{
|
||||||
return (AVMStore)getSession().get(AVMStoreImpl.class, id);
|
AVMStore result = (AVMStore)getSession().get(AVMStoreImpl.class, id);
|
||||||
|
return forceNonLazy(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
@@ -145,4 +154,13 @@ class AVMStoreDAOHibernate extends HibernateDaoSupport implements
|
|||||||
{
|
{
|
||||||
fNameCache.clear();
|
fNameCache.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private AVMStore forceNonLazy(AVMStore store)
|
||||||
|
{
|
||||||
|
if (store instanceof HibernateProxy)
|
||||||
|
{
|
||||||
|
return (AVMStore)((HibernateProxy)store).getHibernateLazyInitializer().getImplementation();
|
||||||
|
}
|
||||||
|
return store;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user