LetterOfCreditRepositoryImpl.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.tradecloud.repository.impl;
import com.tradecloud.domain.infrastructure.persistence.CriteriaBuilder;
import com.tradecloud.domain.letterofcredit.LetterOfCredit;
import com.tradecloud.domain.letterofcredit.LetterOfCreditState;
import com.tradecloud.dto.letterofcredit.LetterOfCreditSearch;
import com.tradecloud.repository.LetterOfCreditRepository;
import com.tradecloud.repository.SearchMetaParams;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;
import java.util.List;
import org.apache.log4j.Logger;
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;
/**
*
* @author Fred
*/
@Repository(value = "letterOfCreditRepository")
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class LetterOfCreditRepositoryImpl extends RepositoryBaseImpl<LetterOfCredit, LetterOfCreditSearch> implements LetterOfCreditRepository {
private final static transient Logger log = Logger.getLogger(LetterOfCredit.class);
private final static String NUMBER = "number";
private final static String BANK_REFERENCE = "bankReference";
private final static String STATE = "state";
private final static String KEY = "key";
private final static String NAME = "name";
private final static String DESCRIPTION = "description";
private final static String ISSUING_BANK = "issuingBank";
private final static String BANK = "owningEntity";
private final static String SUPPLIER = "selectedSuppliers";
private final static String OUT_OF_SYNC_STATE = "outOfSyncState";
private final static String CREATED = "created";
private final static String APPLICANT = "applicant";
private final static String APPLICATION_REFERENCE = "applicationReference";
@Override
public List<LetterOfCredit> searchOutOfSyncLc(LetterOfCreditSearch search) {
log.debug("Search. " + search);
DetachedCriteria criteria = DetachedCriteria.forClass(LetterOfCredit.class);
// TODO. Add others.
CriteriaBuilder.addiLikeAnyRestriction(criteria, NUMBER, search.getNumber());
CriteriaBuilder.addiLikeAnyRestriction(criteria, BANK_REFERENCE, search.getBankReference());
CriteriaBuilder.addiLikeAnyRestriction(criteria, APPLICATION_REFERENCE, search.getApplicationReference());
CriteriaBuilder.addEqRestriction(criteria, ISSUING_BANK, search.getBank());
CriteriaBuilder.addExactMatch(criteria, OUT_OF_SYNC_STATE, search.getOutOfSyncState());
CriteriaBuilder.addEqRestriction(criteria, APPLICANT, search.getOrganisationalUnit());
CriteriaBuilder.addEqActiveStateRestriction(criteria, STATE, search.getState(), LetterOfCreditState.DELETED);
CriteriaBuilder.addDateGreaterOrEqualRangeCriteria(criteria, CREATED, search.getCreatedDate().getFrom());
CriteriaBuilder.addDateLessOrEqualRangeCriteria(criteria, CREATED, search.getCreatedDate().getTo());
SearchMetaParams metaParams = new SearchMetaParams(0, 10, CREATED, false);
search.setSearchMetaParams(metaParams);
return getExecutableCriteriaList(criteria, search.getSearchMetaParams());
}
}