package net.changwoo.x1wins.dao;
import java.util.List;
import net.changwoo.x1wins.entity.Reply;
import net.changwoo.x1wins.web.BbsController;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class ReplyDao extends GenericDaoImpl<Reply, Integer> {
private static final Logger logger = LoggerFactory.getLogger(ReplyDao.class);
@Autowired
ReplyDao(SessionFactory sf) {
super(sf);
}
@Override
protected Class<Reply> getEntityClass() {
return Reply.class;
}
public List<Reply> findReplyList(int bbsnum) throws Exception{
/*
* Hibernate: select this_.rnum as rnum6_3_, this_.content as
* content6_3_, this_.ip as ip6_3_, this_.regdate as regdate6_3_,
* this_.status as status6_3_, this_1_.num as num7_3_, this_2_.num as
* num8_3_, b1_.num as num0_0_, b1_.content as content0_0_, b1_.count as
* count0_0_, b1_.ip as ip0_0_, b1_.regdate as regdate0_0_, b1_.status
* as status0_0_, b1_.subject as subject0_0_, b1_.userid as userid0_0_,
* b1_1_.bbsnum as bbsnum1_0_, config5_.bbsnum as bbsnum2_1_,
* config5_.bbsname as bbsname2_1_, config5_.listTypeNum as
* listType3_2_1_, config5_.publicYn as publicYn2_1_, config5_.readFrom
* as readFrom2_1_, config5_.readUntil as readUntil2_1_,
* config5_.replyYn as replyYn2_1_, config5_.userid as userid2_1_,
* config5_.writeFrom as writeFrom2_1_, config5_.writeUntil as
* writeUntil2_1_, u2_.num as num9_2_, u2_.content as content9_2_,
* u2_.content_type as content3_9_2_, u2_.email as email9_2_,
* u2_.filename as filename9_2_, u2_.filenum as filenum9_2_, u2_.level
* as level9_2_, u2_.name as name9_2_, u2_.password as password9_2_,
* u2_.phone as phone9_2_, u2_.regdate as regdate9_2_, u2_.status as
* status9_2_, u2_.userid as userid9_2_ from reply this_ left outer join
* bbs_reply this_1_ on this_.rnum=this_1_.rnum left outer join
* reply_user this_2_ on this_.rnum=this_2_.rnum inner join bbs b1_ on
* this_1_.num=b1_.num left outer join bbs_config b1_1_ on
* b1_.num=b1_1_.num left outer join config config5_ on
* b1_1_.bbsnum=config5_.bbsnum inner join user u2_ on
* this_2_.num=u2_.num where b1_.num=? order by this_.rnum desc
*/
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Reply.class, "A");
detachedCriteria.createCriteria("bbs", "B");
detachedCriteria.add(Restrictions.eq("B.num", 1)).addOrder(Order.desc("A.rnum"));
// List<Reply> list = criteria.list();
// List<Reply> list = getHibernateTemplate().findByCriteria(detachedCriteria);
List<Reply> list = getHibernateTemplate().findByCriteria(detachedCriteria, 0, 10);
logger.debug("size : "+list.size());
logger.debug("list : "+list);
return list;
}
}