LogisticsEventMetaDataRepositoryImpl.java

package com.tradecloud.repository.configuration.impl;

import com.tradecloud.domain.configuration.LogisticsEventsMetaData;
import com.tradecloud.repository.configuration.LogisticsEventMetaDataRepository;
import com.tradecloud.repository.impl.RepositoryBaseImplNoSearch;
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.List;

/**
 * Default implementation of the {@code LogisticsEventsMetaData} interface.
 */
@Repository(value = "logisticsEventMetaDataRepository")
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class LogisticsEventMetaDataRepositoryImpl extends RepositoryBaseImplNoSearch<LogisticsEventsMetaData>
        implements LogisticsEventMetaDataRepository {

    private static final long serialVersionUID = 1L;

    @Override
    public LogisticsEventsMetaData findByEventType(String eventType) {
        Criteria searchCriteria = getSessionCustom().createCriteria(LogisticsEventsMetaData.class);
        searchCriteria.add(Restrictions.eq("event", eventType));
        return (LogisticsEventsMetaData) searchCriteria.uniqueResult();
    }

    @Override
    public List<LogisticsEventsMetaData> findAllTypes() {
        Criteria searchCriteria = getSessionCustom().createCriteria(LogisticsEventsMetaData.class);
        return (List<LogisticsEventsMetaData>) searchCriteria.list();
    }
}