📄 topicdao.java
字号:
package tarena.dao;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Hibernate;
import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.criterion.Example;
import tarena.data.AbractTopic;
import tarena.entity.Section;
import tarena.entity.Topic;
/**
* Data access object (DAO) for domain model class Topic.
*
* @see tarena.entity.Topic
* @author MyEclipse Persistence Tools
*/
@SuppressWarnings("unchecked")
public class TopicDAO extends BaseHibernateDAO {
private static final Log log = LogFactory.getLog(TopicDAO.class);
// property constants
public static final String ISLOCK = "islock";
public static final String LOCKUSER = "lockuser";
public static final String TOPICTYPE = "topictype";
public static final String DIGEST = "digest";
public static final String DEGESTUSER = "degestuser";
public static final String HIGHLIGHT = "highlight";
public static final String LIGHTCOLOR = "lightcolor";
public static final String LIGHTUSER = "lightuser";
public static final String LETTOP = "lettop";
public static final String LETTOPAREA = "lettoparea";
public static final String LETTOPUSER = "lettopuser";
public static final String VOTE = "vote";
public static final String VOTEUSER = "voteuser";
public static final String VIEWNUM = "viewnum";
public void save(Topic transientInstance) {
try {
getSession().beginTransaction();
getSession().save(transientInstance);
getSession().getTransaction().commit();
} catch (RuntimeException re) {
throw re;
}finally{
closeSession();
}
}
public void delete(Topic persistentInstance) {
try {
getSession().beginTransaction();
getSession().delete(persistentInstance);
getSession().getTransaction().commit();
} catch (RuntimeException re) {
throw re;
}finally{
closeSession();
}
}
public Topic findById(java.lang.Integer id) {
try {
Topic instance = (Topic) getSession()
.get("tarena.entity.Topic", id);
return instance;
} catch (RuntimeException re) {
throw re;
}finally{
closeSession();
}
}
/**
* 查找指定板块下的非置顶主题,并分页显示。
* @param section
* @param first
* @param max
* @return
*/
public List<Topic> findUnTopTopicBySection(Section section,int first,int max){
StringBuffer hql = new StringBuffer();
hql.append("from Topic topic where topic.section=? and topic.lettop=?");
return getSession().createQuery(hql.toString())
.setParameter(0, section)
.setParameter(1, false)
.setFirstResult(first)
.setMaxResults(max)
.list();
}
/**
* 查找指定板块下的所有置顶主题。
* 该函数只考虑主题只在该板块下被置顶的情况。
* @param section
* @param first
* @param max
* @return
*/
public List<Topic> findLetTopTopicBySection(Section section){
StringBuffer hql = new StringBuffer();
hql.append("from Topic topic where topic.section=? and topic.lettop=?");
return getSession().createQuery(hql.toString())
.setParameter(0, section)
.setParameter(1, true)
.list();
}
/**
* 按主题id查找该主题的名字。
* @param topicid
* @return
*/
public String findTopicNameById(Integer topicid){
StringBuffer sql = new StringBuffer();
sql.append("select p.title from post p where p.floor=0 and p.tid="+topicid);
String re = (String)getSession()
.createSQLQuery(sql.toString())
.uniqueResult();
return re;
}
/**
* 计算该主题的回复次数。
* @param topicid
* @return
*/
public Integer countFloors(Integer topicid){
StringBuffer sql = new StringBuffer();
sql.append("select max(floor) from post where tid="+topicid);
Integer re = (Integer)getSession()
.createSQLQuery(sql.toString())
.uniqueResult();
return re;
}
/**
*
* @param topamt
* @return
*/
public List<AbractTopic> listHotTopic(int topamt){
StringBuffer hql = new StringBuffer();
hql.append("select new tarena.data.AbractTopic(t.id,p.title,t.viewnum) ");
hql.append("from Topic t,Post p ");
hql.append("where p.topic.id=t.id and p.floor=0 order by t.viewnum desc ");
return getSession()
.createQuery(hql.toString())
.setFirstResult(0)
.setMaxResults(topamt)
.list();
}
public List findByExample(Topic instance) {
log.debug("finding Topic instance by example");
try {
List results = getSession().createCriteria("tarena.entity.Topic")
.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 Topic instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Topic 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 findByIslock(Object islock) {
return findByProperty(ISLOCK, islock);
}
public List findByLockuser(Object lockuser) {
return findByProperty(LOCKUSER, lockuser);
}
public List findByTopictype(Object topictype) {
return findByProperty(TOPICTYPE, topictype);
}
public List findByDigest(Object digest) {
return findByProperty(DIGEST, digest);
}
public List findByDegestuser(Object degestuser) {
return findByProperty(DEGESTUSER, degestuser);
}
public List findByHighlight(Object highlight) {
return findByProperty(HIGHLIGHT, highlight);
}
public List findByLightcolor(Object lightcolor) {
return findByProperty(LIGHTCOLOR, lightcolor);
}
public List findByLightuser(Object lightuser) {
return findByProperty(LIGHTUSER, lightuser);
}
public List findByLettop(Object lettop) {
return findByProperty(LETTOP, lettop);
}
public List findByLettoparea(Object lettoparea) {
return findByProperty(LETTOPAREA, lettoparea);
}
public List findByLettopuser(Object lettopuser) {
return findByProperty(LETTOPUSER, lettopuser);
}
public List findByVote(Object vote) {
return findByProperty(VOTE, vote);
}
public List findByVoteuser(Object voteuser) {
return findByProperty(VOTEUSER, voteuser);
}
public List findByViewnum(Object viewnum) {
return findByProperty(VIEWNUM, viewnum);
}
public List findAll() {
log.debug("finding all Topic instances");
try {
String queryString = "from Topic";
Query queryObject = getSession().createQuery(queryString);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -