ExportConsignmentDocumentRepositoryImpl.java

package com.tradecloud.repository.impl;

import com.tradecloud.domain.export.ExportConsignmentDocument;
import com.tradecloud.dto.consignment.ExportConsignmentDocumentSearch;
import com.tradecloud.repository.ExportConsignmentDocumentRepository;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * Created by ds on 2015/12/02.
 */
@Repository(value = "exportConsignmentDocumentRepository")
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class ExportConsignmentDocumentRepositoryImpl extends RepositoryBaseImpl<ExportConsignmentDocument, ExportConsignmentDocumentSearch>
        implements ExportConsignmentDocumentRepository {

    @Override
    public List<ExportConsignmentDocument> search(ExportConsignmentDocumentSearch search) {

        Criteria criteria = getSessionCustom().createCriteria(ExportConsignmentDocument.class);
        if (search.getExportConsignment() != null) {
            criteria.add(Restrictions.eq("exportConsignment", search.getExportConsignment()));
        }
        criteria.addOrder(Order.desc("created"));

        return criteria.list();

    }
}