📄 sectiondao.java
字号:
package tarena.dao;
import java.math.BigInteger;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.criterion.Example;
import tarena.dao.pages.RootForumDAO;
import tarena.data.AbractCategory;
import tarena.data.AbractSection;
import tarena.entity.Section;
/**
* Data access object (DAO) for domain model class Section.
*
* @see tarena.entity.Section
* @author MyEclipse Persistence Tools
*/
@SuppressWarnings("unchecked")
public class SectionDAO extends BaseHibernateDAO {
private static final Log log = LogFactory.getLog(SectionDAO.class);
// property constants
public static final String SECTIONNAME = "sectionname";
public static final String PARENTID = "parentid";
public static final String DESCRIPTION = "description";
public static final String MODERATORS = "moderators";
public static final String PHOTO = "photo";
public static final String SECTIONTYPE = "sectiontype";
public void save(Section transientInstance) {
try {
getSession().beginTransaction();
getSession().save(transientInstance);
getSession().getTransaction().commit();
} catch (RuntimeException re) {
throw re;
}
}
public void delete(Section persistentInstance) {
try {
getSession().beginTransaction();
getSession().delete(persistentInstance);
getSession().getTransaction().commit();
} catch (RuntimeException re) {
throw re;
}
}
public Section findById(java.lang.Integer id) {
if(id==-1) return null;
try {
Section instance = (Section) getSession().get(
"tarena.entity.Section", id);
return instance;
} catch (RuntimeException re) {
throw re;
}
}
public List findByExample(Section instance) {
log.debug("finding Section instance by example");
try {
List results = getSession().createCriteria("tarena.entity.Section")
.add(Example.create(instance)).list();
log.debug("find by example successful, result size: "
+ results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}
public List findByProperty(String propertyName, Object value) {
log.debug("finding Section instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Section as model where model."
+ propertyName + "= ?";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, value);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}
public List findBySectionname(Object sectionname) {
return findByProperty(SECTIONNAME, sectionname);
}
public List findByParentid(Object parentid) {
return findByProperty(PARENTID, parentid);
}
public List findByDescription(Object description) {
return findByProperty(DESCRIPTION, description);
}
public List findByModerators(Object moderators) {
return findByProperty(MODERATORS, moderators);
}
public List findByPhoto(Object photo) {
return findByProperty(PHOTO, photo);
}
public List findBySectiontype(Object sectiontype) {
return findByProperty(SECTIONTYPE, sectiontype);
}
public List findAll() {
log.debug("finding all Section instances");
try {
String queryString = "from Section";
Query queryObject = getSession().createQuery(queryString);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}
/**
* 查询指定一级板块下的二级板块。
* @param categoryid 顶级分类id
* @return AbractCategory类型的集合
*/
public List<AbractSection> listSecondCategory(int categoryid){
StringBuffer hql=new StringBuffer();
hql.append("select new tarena.data.AbractSection(id,"+SECTIONNAME+") from Section c where c."+PARENTID+"=? and c."+SECTIONTYPE+"=2");
// System.out.println(getSession().createQuery(hql.toString()));
return getSession().createQuery(hql.toString())
.setParameter(0, categoryid)
.list();
// return new LinkedList<AbractSection>();
}
/**
* 查询指定二级板块下的三级板块。
* @param categoryid 顶级分类id
* @return AbractCategory类型的集合
*/
public List<AbractSection> listHotThirdCategory(int categoryid){
StringBuffer sql=new StringBuffer();
sql.append("select cat.id,cat."+SECTIONNAME+" ,count(*) n from ");
sql.append("(select id,"+SECTIONNAME+" from section where "+PARENTID+"=? and "+SECTIONTYPE+"=3) cat left outer join product p ");
sql.append("on (p.cid=cat.id) group by cat.id order by n desc");
List<Object[]> result= getSession()
.createSQLQuery(sql.toString())
.setParameter(0, categoryid)
.list();
List<AbractSection> re=new Vector<AbractSection>();
for(int i=0;i<result.size();i++){
Object [] data=result.get(i);
AbractSection as = new AbractSection((Integer)data[0],data[1].toString(),((BigInteger)data[2]).intValue());
as.setReply(new RootForumDAO().findReplyUnique(as.getId()));
re.add(as);
}
return re;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -