/*
* Licensed to csti consulting
* You may obtain a copy of the License at
*
* http://www.csticonsulting.com
* Copyright (c) 2006-Aug 24, 2010 Consultation CS-TI inc.
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.salesmanager.core.service.catalog.impl.db.dao;
// Generated Oct 4, 2009 7:13:58 PM by Hibernate Tools 3.2.0.beta8
import java.util.Collection;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;
import com.salesmanager.core.entity.catalog.ProductRelationship;
/**
* Home object for domain model class ProductRelationship.
*
* @see com.salesmanager.core.entity.catalog.ProductRelationship
* @author Hibernate Tools
*/
@Repository
public class ProductRelationshipDao extends HibernateDaoSupport implements
IProductRelationshipDao {
private static final Log log = LogFactory
.getLog(ProductRelationshipDao.class);
@Autowired
public ProductRelationshipDao(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
/*
* (non-Javadoc)
*
* @see
* com.salesmanager.core.service.catalog.impl.dao.IProductRelationshipDao
* #persist(com.salesmanager.core.entity.catalog.ProductRelationship)
*/
public void persist(ProductRelationship transientInstance) {
try {
super.getHibernateTemplate().persist(transientInstance);
} catch (RuntimeException re) {
log.error("persist failed", re);
throw re;
}
}
/*
* (non-Javadoc)
*
* @see
* com.salesmanager.core.service.catalog.impl.dao.IProductRelationshipDao
* #saveOrUpdate(com.salesmanager.core.entity.catalog.ProductRelationship)
*/
public void saveOrUpdate(ProductRelationship instance) {
try {
super.getHibernateTemplate().saveOrUpdate(instance);
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}
/*
* (non-Javadoc)
*
* @see
* com.salesmanager.core.service.catalog.impl.dao.IProductRelationshipDao
* #delete(com.salesmanager.core.entity.catalog.ProductRelationship)
*/
public void delete(ProductRelationship persistentInstance) {
try {
super.getHibernateTemplate().delete(persistentInstance);
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
/*
* (non-Javadoc)
*
* @see
* com.salesmanager.core.service.catalog.impl.dao.IProductRelationshipDao
* #findById(int)
*/
public ProductRelationship findById(int id) {
try {
ProductRelationship instance = (ProductRelationship) super
.getHibernateTemplate()
.get(
"com.salesmanager.core.entity.catalog.ProductRelationship",
id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
public ProductRelationship findRelationshipLine(long productId,
long relatedProductId, int merchantId, int relationType) {
try {
ProductRelationship pr = (ProductRelationship) super.getSession()
.createCriteria(ProductRelationship.class).add(
Restrictions.eq("productId", productId)).add(
Restrictions.eq("relatedProductId",
relatedProductId)).add(
Restrictions.eq("merchantId", merchantId)).add(
Restrictions.eq("relationshipType", relationType))
.uniqueResult();
return pr;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
public Collection<ProductRelationship> findByMerchantIdAndRelationTypeId(
int merchantId, int relationType) {
try {
List list = super.getSession().createCriteria(
ProductRelationship.class).add(
Restrictions.eq("merchantId", merchantId)).add(
Restrictions.eq("relationshipType", relationType)).list();
return list;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
public Collection<ProductRelationship> findByProductIdAndMerchantIdAndRelationTypeId(
long productId, int merchantId, int relationType) {
try {
List list = super.getSession().createCriteria(
ProductRelationship.class).add(
Restrictions.eq("relatedProductId", productId)).add(
Restrictions.eq("merchantId", merchantId)).add(
Restrictions.eq("relationshipType", relationType)).list();
return list;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
}