📄 categorydao.java
字号:
package com.sush.webstore.store.data.dao.hibernate;
import java.math.BigInteger;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;
import com.sush.webstore.store.data.dao.ICategoryDAO;
import com.sush.webstore.store.data.dao.hibernate.util.HibernateUtil;
import com.sush.webstore.store.domain.ICategory;
import com.sush.webstore.store.domain.IProduct;
import com.sush.webstore.store.domain.beans.Category;
import com.sush.webstore.store.domain.beans.Product;
public class CategoryDAO implements ICategoryDAO {
/*
* @param category @param product @return
*/
public boolean addProduct(ICategory category, IProduct product) {
if (product == null || category == null)
return false;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.update(category);
((Category) category).addProduct((Product) product);
session.save(product);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
return true;
}
/*
* @param category @param subCategory @return
*/
public boolean addSubCategory(ICategory category, ICategory subCategory) {
if (subCategory == null || category == null)
return false;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.update(category);
((Category) subCategory).setSupCategory((Category) category);
session.save(subCategory);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
return true;
}
/*
* @param id @return
*/
public ICategory getCategory(long id) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
ICategory category = null;
try {
session.beginTransaction();
category = (ICategory) session.get(Category.class, new Long(id));
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
return category;
}
/*
* @param category @return
*/
public Set<IProduct> getProducts(ICategory category) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Set<Product> products = null;
try {
session.beginTransaction();
session.refresh(category);
Hibernate.initialize(((Category) category).getProducts());
products = ((Category) category).getProducts();
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
if (products == null)
return null;
return new HashSet<IProduct>(products);
}
/*
* @param category @return
*/
public Set<ICategory> getSubCategories(ICategory category) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
List list = null;
try {
session.beginTransaction();
Query query = session.createQuery("from Category as category where"
+ " supCategory.id = ?");
query.setString(0, new Long(category.getId()).toString());
list = query.list();
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
if (list == null)
return null;
return new HashSet<ICategory>(list);
}
public boolean hasProducts(ICategory category) {
if (category == null)
return false;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Set<Product> set = null;
try {
session.beginTransaction();
session.refresh(category);
Hibernate.initialize(((Category) category).getProducts());
set = ((Category) category).getProducts();
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
if (set == null)
return false;
return set.size() > 0 ? true : false;
}
/*
* @param category @return
*/
public boolean hasSubCategories(ICategory category) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
BigInteger count = null;
try {
session.beginTransaction();
Query query = session
.createSQLQuery("select count(*) from Category "
+ "where SUP_ID = ?");
query.setString(0, new Long(category.getId()).toString());
count = (BigInteger) query.uniqueResult();
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
if (count == null)
return false;
return count.intValue() > 0 ? true : false;
}
/*
* @param category @return
*/
public boolean removeProduct(ICategory category, IProduct product) {
if (product == null || category == null)
return false;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.update(category);
((Category) category).removeProduct((Product) product);
session.delete(product);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
return true;
}
/*
* @param category @return
*/
public boolean updateCategory(ICategory category) {
if (category == null)
return false;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.update(category);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -