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;
}
}