ContainerRateRepositoryImpl.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.tradecloud.repository.impl;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.tradecloud.domain.infrastructure.persistence.CriteriaBuilder;
import com.tradecloud.dto.rate.ContainerRateSearch;
import com.tradecloud.domain.rate.ContainerRate;
import com.tradecloud.repository.ContainerRateRepository;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;
/**
* Container Rate repository.
*
*/
@Repository(value = "containerRateRepository")
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class ContainerRateRepositoryImpl extends RepositoryBaseImpl<ContainerRate, ContainerRateSearch> implements ContainerRateRepository {
private static final long serialVersionUID = 1L;
@Override
public List<ContainerRate> search(ContainerRateSearch containerRateSearch) {
DetachedCriteria criteria = DetachedCriteria.forClass(ContainerRate.class);
CriteriaBuilder.addEqRestriction(criteria, "shippingMode", containerRateSearch.getShippingMode());
CriteriaBuilder.addEqRestriction(criteria, "costLineTemplate", containerRateSearch.getCostLineTemplate());
CriteriaBuilder.addEqRestriction(criteria, "costGroup", containerRateSearch.getCostGroup());
CriteriaBuilder.addEqRestriction(criteria, "containerType", containerRateSearch.getContainerType());
CriteriaBuilder.addEqRestriction(criteria, "currency", containerRateSearch.getCurrency());
CriteriaBuilder.addEqRestriction(criteria, "placeOfDischarge", containerRateSearch.getPlaceOfDischarge());
CriteriaBuilder.addEqRestriction(criteria, "clearingAgent", containerRateSearch.getClearingAgent());
CriteriaBuilder.addEqRestriction(criteria, "finalDestination", containerRateSearch.getFinalDestination());
CriteriaBuilder.addEqRestriction(criteria, "origin", containerRateSearch.getOrigin());
CriteriaBuilder.addEqRestriction(criteria, "forwardingAgent", containerRateSearch.getForwardingAgent());
CriteriaBuilder.addEqRestriction(criteria, "placeOfLoading", containerRateSearch.getPlaceOfLoading());
CriteriaBuilder.addEqRestriction(criteria, "placeOfDischarge", containerRateSearch.getPlaceOfDischarge());
CriteriaBuilder.addEqRestriction(criteria, "placeOfLoading", containerRateSearch.getPlaceOfLoading());
CriteriaBuilder.addEqRestriction(criteria, "leadTime", containerRateSearch.getLeadTime());
CriteriaBuilder.addEqRestriction(criteria, "shippingLine", containerRateSearch.getShippingLine());
@SuppressWarnings("unchecked")
List<ContainerRate> results = criteria.getExecutableCriteria(getSessionCustom()).list();
return results;
}
}