📄 categorydaoimpl.java
字号:
package org.whatisjava.dang.dao.hibernate;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.whatisjava.dang.dao.CategoryDao;
import org.whatisjava.dang.domain.Category;
import org.whatisjava.dang.util.DaoException;
public class CategoryDaoImpl implements CategoryDao {
private static Logger logger = Logger.getLogger(CategoryDaoImpl.class);
public Category findById(Integer id, boolean withSub) throws DaoException {
Session session = HbSessionFactory.getSession();
try {
String hql = withSub ? "from Category c left outer join fetch c.subCategory where c.id=?"
: "from Category c where c.id=?";
session = HbSessionFactory.getSession();
Query query = session.createQuery(hql);
query.setParameter(0, id);
List<?> list = query.list();
if (list.size() > 0) {
return (Category) list.get(0);
}
throw new DaoException("无法找到指定Id的分类");
} catch (HibernateException e) {
logger.error("", e);
throw new DaoException("", e);
} finally {
HbSessionFactory.closeSession();
}
}
public List<?> findByParentId(Integer parentId) throws DaoException {
Session session = HbSessionFactory.getSession();
try {
String hql = "from Category c where c.parentId=?";
session = HbSessionFactory.getSession();
Query query = session.createQuery(hql);
query.setParameter(0, parentId);
List<?> list = query.list();
return list;
} catch (HibernateException e) {
logger.error("", e);
throw new DaoException("", e);
} finally {
HbSessionFactory.closeSession();
}
}
public Category findThreeLevelById(Integer id) throws DaoException {
Session session = HbSessionFactory.getSession();
try {
session = HbSessionFactory.getSession();
Query query = session
.createQuery("from Category c left outer join fetch c.subCategory subC "
+ "left outer join fetch subC.subCategory where c.id=?");
query.setParameter(0, id);
List<?> list = query.list();
if (list.size() > 0) {
return (Category) list.get(0);
}
throw new DaoException("无法找到指定Id的分类");
} catch (HibernateException e) {
logger.error("", e);
throw new DaoException("", e);
} finally {
HbSessionFactory.closeSession();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -