package net.techreadiness.customer.datagrid; import java.util.Collection; import java.util.List; import javax.inject.Inject; import net.techreadiness.persistence.criteriaquery.Criteria; import net.techreadiness.persistence.criteriaquery.CriteriaQuery; import net.techreadiness.persistence.criteriaquery.QueryResult; import net.techreadiness.persistence.domain.FileDO; import net.techreadiness.service.common.DataGrid; import net.techreadiness.service.common.DataGridItemProviderImpl; import net.techreadiness.service.object.File; import net.techreadiness.service.object.mapping.MappingService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @Component @Scope("prototype") @Transactional(readOnly = true) public class FileByIDsItemProviderImpl extends DataGridItemProviderImpl<File> implements FileByIDsItemProvider { private Collection<Long> fileIds; @Inject MappingService mappingService; @Autowired CriteriaQuery<FileDO> criteriaQuery; @Override public List<File> getPage(DataGrid<File> grid) { Criteria criteria = createCriteria(grid); criteriaQuery.setBaseWhere("main.file_id in (:file_id_list)"); criteria.getParameters().putAll("file_id_list", fileIds); QueryResult<FileDO> result = criteriaQuery.getData(criteria, FileDO.class); setTotalNumberOfItems(result.getTotalRowCount()); return mappingService.mapFromDOList(result.getRows()); } public Collection<Long> getFileIds() { return fileIds; } @Override public void setFileIds(Collection<Long> fileIds) { this.fileIds = fileIds; } }