ProductGroupRepositoryImpl.java
package com.tradecloud.repository.hfc;
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
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.ProductGroup;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;
/**
* Created by IntelliJ IDEA.
* User: ds
* Date: 2013/01/24
* Time: 12:16 PM
* To change this template use File | Settings | File Templates.
*/
@Repository(value = "productGroupRepository")
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class ProductGroupRepositoryImpl extends RepositoryBaseImpl<ProductGroup, Object> implements ProductGroupRepository {
@Override
public ProductGroup findProductGroupByRef(String ref) {
Criteria criteria = getSessionCustom().createCriteria(ProductGroup.class);
criteria.add(Restrictions.like("reference", ref));
criteria.addOrder(Order.desc("description"));
return (ProductGroup) criteria.uniqueResult();
}
@Override
public ProductGroup findProductGroupById(Long productId) {
Criteria criteria = getSessionCustom().createCriteria(ProductGroup.class);
criteria.createCriteria("products").add(Restrictions.eq("id", productId));
criteria.addOrder(Order.desc("description"));
return (ProductGroup) criteria.uniqueResult();
}
}