EventLabelRepositoryImpl.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.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 com.tradecloud.domain.model.hfcmanagement.EventLabel;
import com.tradecloud.dto.eventlabel.EventLabelSearch;
import com.tradecloud.repository.EventLabelRepository;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;

@Repository(value = "eventLabelRepository")
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class EventLabelRepositoryImpl extends RepositoryBaseImpl<EventLabel, Object> implements EventLabelRepository {

    private static final long serialVersionUID = 1L;
    private static final String NAME = "name";

    @Override
    public EventLabel findByUniqueFields(EventLabel eventLabel) {
        List<EventLabel> search = search(EventLabelSearch.uniqueSearch(eventLabel));
        if (!search.isEmpty()) {
            return search.get(0);
        }
        return null;
    }

    @Override
    public List<EventLabel> search(EventLabelSearch search) {

        Criteria criteria = getSessionCustom().createCriteria(EventLabel.class);
        if (search.getUserName() != null) {
            criteria.add(Restrictions.eq("userName", search.getUserName()));
        }
        if (search.getName() != null) {
            criteria.add(Restrictions.ilike("name", search.getName()));
        }

        return criteria.list();
    }

    @Override
    public List<EventLabel> findAll() {
        return super.findAll();
    }
}