ExportTarrifCodeRepositoryImpl.java

package com.tradecloud.repository.export.impl;

import com.tradecloud.domain.export.ExportTarrifCode;
import com.tradecloud.dto.export.ExportTarrifCodeSearch;
import com.tradecloud.repository.base.impl.CriteriaOperation;
import com.tradecloud.repository.base.impl.CriteriaValue;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;
import com.tradecloud.repository.export.ExportTarrifCodeRepository;
import org.apache.log4j.Logger;

import org.hibernate.Criteria;
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.Collection;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

@Repository(value = "exportTarrifCodeRepository")
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class ExportTarrifCodeRepositoryImpl extends RepositoryBaseImpl<ExportTarrifCode, ExportTarrifCodeSearch> implements
        ExportTarrifCodeRepository {
    private static final long serialVersionUID = 1L;
    private Logger log = Logger.getLogger(this.getClass().getName());
    private static final String CODE = "code";

    @Override
    public List<ExportTarrifCode> search(ExportTarrifCodeSearch search) {
        return searchByCriteria(search);
    }

    @Override
    public long count(ExportTarrifCodeSearch search) {
        return countByCriteria(search);
    }

    @Override
    public ExportTarrifCode retrieveTarrifCode(String code) {
        Criteria searchCriteria = getSession().createCriteria(ExportTarrifCode.class);
        searchCriteria.add(Restrictions.eq(CODE, code));
        return (ExportTarrifCode) searchCriteria.uniqueResult();
    }

    @Override
    protected Collection<CriteriaValue> mapFieldsToValues(ExportTarrifCodeSearch search) {
        Collection<CriteriaValue> fields = new LinkedHashSet<CriteriaValue>();
        fields.add(new CriteriaValue(CriteriaOperation.EQUALS, CODE, search.getCode()));
        return fields;
    }

    @Override
    public List<ExportTarrifCode> retrieveByTarrifCodes(Set<String> set) {
        Criteria searchCriteria = getSession().createCriteria(ExportTarrifCode.class);
        searchCriteria.add(Restrictions.in(CODE, set));
        return searchCriteria.list();
    }
}