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@31998 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -722,6 +722,7 @@
|
||||
<foreach item="item" index="index" collection="uuids" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test="deleted != null">and node.node_deleted = #{deleted}</if>
|
||||
</select>
|
||||
|
||||
<select id="select_NodesByIds" parameterType="NodeBatchLoad" resultMap="result_Node">
|
||||
|
@@ -3819,14 +3819,14 @@ public abstract class AbstractNodeDAOImpl implements NodeDAO, BatchingDAO
|
||||
if (batch.size() >= batchSize)
|
||||
{
|
||||
// Preload
|
||||
cacheNodesNoBatch(selectNodesByUuids(storeId, batch));
|
||||
cacheNodesNoBatch(selectNodesByUuids(storeId, batch, Boolean.FALSE));
|
||||
batch.clear();
|
||||
}
|
||||
}
|
||||
// Load any remaining nodes
|
||||
if (batch.size() > 0)
|
||||
{
|
||||
cacheNodesNoBatch(selectNodesByUuids(storeId, batch));
|
||||
cacheNodesNoBatch(selectNodesByUuids(storeId, batch, Boolean.FALSE));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4047,7 +4047,7 @@ public abstract class AbstractNodeDAOImpl implements NodeDAO, BatchingDAO
|
||||
protected abstract int deleteNodesByCommitTime(boolean deletedOnly, long maxTxnCommitTimeMs);
|
||||
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> selectNodesByUuids(Long storeId, SortedSet<String> uuids, Boolean deleted);
|
||||
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);
|
||||
|
@@ -410,11 +410,18 @@ public class NodeDAOImpl extends AbstractNodeDAOImpl
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
protected List<Node> selectNodesByUuids(Long storeId, SortedSet<String> uuids)
|
||||
protected List<Node> selectNodesByUuids(Long storeId, SortedSet<String> uuids, Boolean deleted)
|
||||
{
|
||||
NodeBatchLoadEntity nodeBatchLoadEntity = new NodeBatchLoadEntity();
|
||||
// Store ID
|
||||
nodeBatchLoadEntity.setStoreId(storeId);
|
||||
// UUID
|
||||
nodeBatchLoadEntity.setUuids(new ArrayList<String>(uuids));
|
||||
// Deleted
|
||||
if (deleted != null)
|
||||
{
|
||||
nodeBatchLoadEntity.setDeleted(deleted);
|
||||
}
|
||||
|
||||
return (List<Node>) template.selectList(SELECT_NODES_BY_UUIDS, nodeBatchLoadEntity);
|
||||
}
|
||||
|
Reference in New Issue
Block a user