mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Batch loading of nodes doesn't pull back deleted nodes; search-NodeService interaction fix
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31935 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -735,6 +735,7 @@
|
||||
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test="deleted != null">and node.node_deleted = #{deleted}</if>
|
||||
</select>
|
||||
|
||||
<sql id="select_NodeProperty_Results">
|
||||
|
@@ -3840,14 +3840,14 @@ public abstract class AbstractNodeDAOImpl implements NodeDAO, BatchingDAO
|
||||
if (batch.size() >= batchSize)
|
||||
{
|
||||
// Preload
|
||||
cacheNodesNoBatch(selectNodesByIds(batch));
|
||||
cacheNodesNoBatch(selectNodesByIds(batch, Boolean.FALSE));
|
||||
batch.clear();
|
||||
}
|
||||
}
|
||||
// Load any remaining nodes
|
||||
if (batch.size() > 0)
|
||||
{
|
||||
cacheNodesNoBatch(selectNodesByIds(batch));
|
||||
cacheNodesNoBatch(selectNodesByIds(batch, Boolean.FALSE));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4048,7 +4048,7 @@ public abstract class AbstractNodeDAOImpl implements NodeDAO, BatchingDAO
|
||||
protected abstract NodeEntity selectNodeById(Long id, Boolean deleted);
|
||||
protected abstract NodeEntity selectNodeByNodeRef(NodeRef nodeRef, Boolean deleted);
|
||||
protected abstract List<Node> selectNodesByUuids(Long storeId, SortedSet<String> uuids);
|
||||
protected abstract List<Node> selectNodesByIds(SortedSet<Long> ids);
|
||||
protected abstract List<Node> selectNodesByIds(SortedSet<Long> ids, Boolean deleted);
|
||||
protected abstract Map<NodeVersionKey, Map<NodePropertyKey, NodePropertyValue>> selectNodeProperties(Set<Long> nodeIds);
|
||||
protected abstract Map<NodeVersionKey, Map<NodePropertyKey, NodePropertyValue>> selectNodeProperties(Long nodeId);
|
||||
protected abstract Map<NodeVersionKey, Map<NodePropertyKey, NodePropertyValue>> selectNodeProperties(Long nodeId, Set<Long> qnameIds);
|
||||
|
@@ -31,6 +31,7 @@ public class NodeBatchLoadEntity
|
||||
private Long storeId;
|
||||
private List<String> uuids;
|
||||
private List<Long> ids;
|
||||
private Boolean deleted;
|
||||
|
||||
public Long getStoreId()
|
||||
{
|
||||
@@ -56,4 +57,12 @@ public class NodeBatchLoadEntity
|
||||
{
|
||||
this.ids = ids;
|
||||
}
|
||||
public Boolean getDeleted()
|
||||
{
|
||||
return deleted;
|
||||
}
|
||||
public void setDeleted(Boolean deleted)
|
||||
{
|
||||
this.deleted = deleted;
|
||||
}
|
||||
}
|
||||
|
@@ -421,10 +421,16 @@ public class NodeDAOImpl extends AbstractNodeDAOImpl
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
protected List<Node> selectNodesByIds(SortedSet<Long> ids)
|
||||
protected List<Node> selectNodesByIds(SortedSet<Long> ids, Boolean deleted)
|
||||
{
|
||||
NodeBatchLoadEntity nodeBatchLoadEntity = new NodeBatchLoadEntity();
|
||||
// IDs
|
||||
nodeBatchLoadEntity.setIds(new ArrayList<Long>(ids));
|
||||
// Deleted
|
||||
if (deleted != null)
|
||||
{
|
||||
nodeBatchLoadEntity.setDeleted(deleted);
|
||||
}
|
||||
|
||||
return (List<Node>) template.selectList(SELECT_NODES_BY_IDS, nodeBatchLoadEntity);
|
||||
}
|
||||
|
Reference in New Issue
Block a user