
- 个人认为直接操作sql效率最高
-
select t1.* from table t1
left join table t2
on t1.t1与t2关联的主键=t2.主键
left join table t3 on
t2.t2与t3关联的主键=t3.主键
left join …
on …
WHERE 1=1
and xxxx and xxxx …
条件如果为string类型,则判断length是否大于0,来判断是否拼接简单查询Demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
* 督办单简单分页查询
*
* @param findManyTable
* @return 2019年7月4日 by 吴峰
*/
public List (final String supervisionno ,final String realname ,final String projectname,final String addtime,final Integer begin,final Integer pagesize){
/*,final Timestamp addtime*/
return this.getHibernateTemplate().execute(
new HibernateCallback<List>() {
public List doInHibernate(Session session) throws HibernateException {
StringBuffer sb=new StringBuffer();
sb.append("select ss.* from supervisionsheet ss"
+" left join projects pj"
+" on pj.projectid=ss.supervisionproject_projectid"
+" left join user us"
+" on us.userid=ss.addsupervisionuser_userid"
+" left join supervisionsheet ss1"
+" on ss.supervisionid=ss1.supervisionid"
+" left join supervisionsheet ss2"
+" on ss.supervisionid=ss2.supervisionid"
+" where 1=1");
if(projectname.length()>0){
sb.append(" and pj.projectname='"+projectname+"'");
System.out.println("projectname执行了");
}
if(realname.length()>0){
sb.append(" and us.realname='"+realname+"'");
System.out.println("realname执行了");
}
if(supervisionno.length()>0){
sb.append(" and ss1.supervisionno='"+supervisionno+"'");
System.out.println("num执行了");
}
if(addtime.length()>0){
sb.append(" and DATE_FORMAT(ss2.addtime,'%Y-%m-%d') >= '"+addtime+"' and DATE_FORMAT(ss2.addtime,'%Y-%m-%d') <= '"+addtime+"'");
System.out.println("addtime执行了");
}
System.err.println("sql:"+sb.toString());
SQLQuery sq=session.createSQLQuery(sb.toString()).addEntity(Supervisionsheet.class);
sq.setFirstResult(begin).setMaxResults(pagesize);
return sq.list();
}
}
);
}




近期评论