diff --git a/src/main/java/org/alfresco/repo/domain/node/AbstractNodeDAOImpl.java b/src/main/java/org/alfresco/repo/domain/node/AbstractNodeDAOImpl.java index 9d411b9817..eb3c9bcdf0 100644 --- a/src/main/java/org/alfresco/repo/domain/node/AbstractNodeDAOImpl.java +++ b/src/main/java/org/alfresco/repo/domain/node/AbstractNodeDAOImpl.java @@ -4868,6 +4868,12 @@ public abstract class AbstractNodeDAOImpl implements NodeDAO, BatchingDAO public Long getMaxTxInNodeIdRange(Long fromNodeId, Long toNodeId) { return selectMaxTxInNodeIdRange(fromNodeId, toNodeId); + } + + @Override + public Long getNextTxCommitTime(Long fromCommitTime) + { + return selectNextTxCommitTime(fromCommitTime); } /* @@ -5037,5 +5043,6 @@ public abstract class AbstractNodeDAOImpl implements NodeDAO, BatchingDAO protected abstract Long selectMaxTxnId(); protected abstract Long selectMinUnusedTxnCommitTime(); protected abstract Long selectMinTxInNodeIdRange(Long fromNodeId, Long toNodeId); - protected abstract Long selectMaxTxInNodeIdRange(Long fromNodeId, Long toNodeId); + protected abstract Long selectMaxTxInNodeIdRange(Long fromNodeId, Long toNodeId); + protected abstract Long selectNextTxCommitTime(Long fromCommitTime); } diff --git a/src/main/java/org/alfresco/repo/domain/node/NodeDAO.java b/src/main/java/org/alfresco/repo/domain/node/NodeDAO.java index e5234ad0d1..775d5baa9d 100644 --- a/src/main/java/org/alfresco/repo/domain/node/NodeDAO.java +++ b/src/main/java/org/alfresco/repo/domain/node/NodeDAO.java @@ -913,5 +913,14 @@ public interface NodeDAO extends NodeBulkLoader * @param toNodeId Final node id * @return maximum commit time */ - public Long getMaxTxInNodeIdRange(Long fromNodeId, Long toNodeId); + public Long getMaxTxInNodeIdRange(Long fromNodeId, Long toNodeId); + + /** + * Gets the next commit time from [fromCommitTime] + * + * @param fromCommitTime Initial commit time + * @return next commit time + */ + public Long getNextTxCommitTime(Long fromCommitTime); + } diff --git a/src/main/java/org/alfresco/repo/domain/node/ibatis/NodeDAOImpl.java b/src/main/java/org/alfresco/repo/domain/node/ibatis/NodeDAOImpl.java index 6c1262bb65..621f81bc0d 100644 --- a/src/main/java/org/alfresco/repo/domain/node/ibatis/NodeDAOImpl.java +++ b/src/main/java/org/alfresco/repo/domain/node/ibatis/NodeDAOImpl.java @@ -165,6 +165,7 @@ public class NodeDAOImpl extends AbstractNodeDAOImpl private static final String SELECT_ONE_TXNS_BY_COMMIT_TIME_DESC = "alfresco.node.select_OneTxnsByCommitTimeDescending"; private static final String SELECT_TXN_MIN_TX_ID_IN_NODE_IDRANGE = "alfresco.node.select_TxnMinTxIdInNodeIdRange"; private static final String SELECT_TXN_MAX_TX_ID_IN_NODE_IDRANGE = "alfresco.node.select_TxnMaxTxIdInNodeIdRange"; + private static final String SELECT_TXN_NEXT_TXN_COMMIT_TIME = "select_TxnNextTxnCommitTime"; protected QNameDAO qnameDAO; protected DictionaryService dictionaryService; @@ -1753,6 +1754,23 @@ public class NodeDAOImpl extends AbstractNodeDAOImpl return template.selectOne(SELECT_TXN_MAX_TX_ID_IN_NODE_IDRANGE, nodeRangeEntity); } + /** + * Gets the next commit time from [fromCommitTime] + * + * @param fromCommitTime Initial commit time + * @return next commit time + */ + @Override + public Long selectNextTxCommitTime(Long fromCommitTime) + { + + TransactionQueryEntity fromCommitTimeEntity = new TransactionQueryEntity(); + fromCommitTimeEntity.setMinCommitTime(fromCommitTime); + + return template.selectOne(SELECT_TXN_NEXT_TXN_COMMIT_TIME, fromCommitTimeEntity); + } + + /* * DAO OVERRIDES */ diff --git a/src/main/resources/alfresco/ibatis/org.alfresco.repo.domain.dialect.Dialect/node-common-SqlMap.xml b/src/main/resources/alfresco/ibatis/org.alfresco.repo.domain.dialect.Dialect/node-common-SqlMap.xml index 5910db9b0b..34bf1b583a 100644 --- a/src/main/resources/alfresco/ibatis/org.alfresco.repo.domain.dialect.Dialect/node-common-SqlMap.xml +++ b/src/main/resources/alfresco/ibatis/org.alfresco.repo.domain.dialect.Dialect/node-common-SqlMap.xml @@ -1496,4 +1496,13 @@ ) + + \ No newline at end of file