📄 productdao.java
字号:
package com.sush.webstore.store.data.dao.hibernate;
import java.math.BigInteger;
import java.util.HashSet;
import java.util.Set;
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;
import com.sush.webstore.store.data.dao.IProductDAO;
import com.sush.webstore.store.data.dao.hibernate.util.HibernateUtil;
import com.sush.webstore.store.domain.IItem;
import com.sush.webstore.store.domain.IProduct;
import com.sush.webstore.store.domain.beans.Item;
import com.sush.webstore.store.domain.beans.Product;
public class ProductDAO implements IProductDAO {
/*
* @param product @param item @return
*/
public boolean addItem(IProduct product, IItem item) {
if (product == null || item == null)
return false;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.update(product);
((Product) product).addItem((Item) item);
session.save(item);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
return true;
}
public Set<IItem> getItems(IProduct product) {
if (product == null)
return null;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Set<Item> set = null;
try {
session.beginTransaction();
session.refresh(product);
Hibernate.initialize(((Product) product).getItems());
set = ((Product) product).getItems();
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
return new HashSet<IItem>(set);
}
/*
* @param id @return
*/
public IProduct getProduct(long id) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
IProduct product = null;
try {
session.beginTransaction();
product = (IProduct) session.load(Product.class, new Long(id));
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
return product;
}
/*
* @param product @return
*/
public boolean hasDisplayableItem(IProduct product) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
BigInteger count = null;
try {
session.beginTransaction();
Query query = session.createSQLQuery("select count(*) from ITEM "
+ "item where PRODUCT_ID = ?");
query.setString(0, new Long(product.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 product @return
*/
public Integer getItemsCount(IProduct product) {
if (product == null)
return 0;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
BigInteger count = null;
try {
session.beginTransaction();
Query query = session.createSQLQuery("select count(*) from ITEM "
+ "item where PRODUCT_ID = ?");
query.setString(0, new Long(product.getId()).toString());
count = (BigInteger) query.uniqueResult();
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
return count.intValue();
}
/*
* @param product @param item @return
*/
public boolean removeItem(IProduct product, IItem item) {
if (product == null || item == null)
return false;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.update(product);
((Product) product).removeItem((Item) item);
session.delete(item);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
return true;
}
/*
* @param category @return
*/
public boolean updateProduct(IProduct product) {
if (product == null)
return false;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.update(product);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.getTransaction().commit();
}
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -