package org.sculptor.simplecqrs.command.repositoryimpl;
import static org.sculptor.framework.accessapi.ConditionalCriteriaBuilder.criteriaFor;
import static org.sculptor.simplecqrs.command.domain.InventoryItemEventProperties.aggregateVersion;
import static org.sculptor.simplecqrs.command.domain.InventoryItemEventProperties.changeSequence;
import static org.sculptor.simplecqrs.command.domain.InventoryItemEventProperties.itemId;
import java.util.List;
import org.sculptor.framework.accessapi.ConditionalCriteria;
import org.sculptor.simplecqrs.command.domain.InventoryItemEvent;
import org.springframework.stereotype.Repository;
/**
* Repository implementation for InventoryItemEvent
*/
@Repository("inventoryItemEventRepository")
public class InventoryItemEventRepositoryImpl extends InventoryItemEventRepositoryBase {
public InventoryItemEventRepositoryImpl() {
}
@Override
public List<InventoryItemEvent> findAllAfter(String itemId, long aggregateVersion) {
List<ConditionalCriteria> criteria = criteriaFor(InventoryItemEvent.class).withProperty(itemId()).eq(itemId)
.and().withProperty(aggregateVersion()).greaterThan(aggregateVersion).orderBy(changeSequence()).build();
return findByCondition(criteria);
}
}