1.版块 module{
private Set<Moderator> moderators=new HashSet<Moderator>();
}
版主 moderator{
private Set<module> modules=new HashSet<Module>();
}
module.hbm.xml
<set name="moderators" table="t_module_moderator">
<key column="module_id"/>
<many-to-many class="com.bbkmobile.iqoo.forum.entity.Moderator" column="moderator_id"/>
</set>
版块和版主是多对多关系,现在根据版主名来搜索版块
查询代码:
public List<Module> showModuleList(final PageVO page, final Module module) throws Exception { // TODO Auto-generated method stub try { @SuppressWarnings("rawtypes") List<Module> list = this.getHibernateTemplate().executeFind( new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria=getSession().createCriteria(Module.class); if (null != module) { //if(null!=module.getModerators()){ if(null!=module.getAdmin() && !"".equals(module.getAdmin())){ criteria.createAlias("moderators", "mod") .add(Restrictions.eq("mod.user", module.getAdmin())); } if (null != module.getName() && !module.getName().equals("")) { criteria.add(Restrictions.like("name", "%" + module.getName() + "%")); } if (null != module.getPackage_name() && !module.getPackage_name().equals("")) { criteria.add(Restrictions.like( "package_name", "%" + module.getPackage_name() + "%")); } if(null!=module.getFromDate()&&!"".equals(module.getFromDate())){ try { criteria.add(Restrictions.ge("add_date",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(module.getFromDate()))); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(null!=module.getToDate()&&!"".equals(module.getToDate())){ try { criteria.add(Restrictions.le("add_date",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(module.getToDate()))); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } criteria.addOrder(Order.desc("id")); criteria.setFirstResult((page.getCurrentPageNum() - 1) * page.getNumPerPage()); criteria.setMaxResults(page.getNumPerPage()); List<Module> result = criteria.list(); /* Criteria criteria = session .createCriteria(Module.class); if (null != module) { if (null != module.getName() && !module.getName().equals("")) { criteria.add(Restrictions.like("name", "%" + module.getName() + "%")); } if (null != module.getPackage_name() && !module.getPackage_name().equals("")) { criteria.add(Restrictions.like( "package_name", "%" + module.getPackage_name() + "%")); } if(null!=module.getFromDate()&&!"".equals(module.getFromDate())){ try { criteria.add(Restrictions.ge("add_date",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(module.getFromDate()))); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(null!=module.getToDate()&&!"".equals(module.getToDate())){ try { criteria.add(Restrictions.le("add_date",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(module.getToDate()))); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } criteria.addOrder(Order.desc("id")); criteria.setFirstResult((page.getCurrentPageNum() - 1) * page.getNumPerPage()); criteria.setMaxResults(page.getNumPerPage()); List<Module> result = criteria.list();*/ //根据版主名 /*for(Module mo:result){ if(null!=mo.getModerators()){ for(Moderator mod:mo.getModerators()){ System.out.println("***="+mod.getUser()); } } }*/ return result; } }); if (null != list && list.size() > 0) { return list; } else { return null; } } catch (Exception e) { throw e; } }