public List getMembersByConditions(Long minAge, Long maxAge, String gender,
String provincecity,int start,int end) throws Exception {
Session session = HibernateSessionFactory.getSession();
List list = null;
String str = "from MemberInfo where 1=1";
if(minAge!=null && maxAge!=null) {
str = str +" and age between "+minAge+" and "+maxAge;
}
if(!gender.equals("unlimited")) {
if(gender.equals("0")) {
str = str+" and gender='0'";
}else {
str = str+" and gender='1'";
}
}
if(!provincecity.equals("unlimited")) {
str = str +" and provinceCity="+provincecity;
}
Query query = session.createQuery(str+"order by nickName");
query.setFirstResult(start);
query.setMaxResults(end);
list = query.list();
return list;
}
String provincecity,int start,int end) throws Exception {
Session session = HibernateSessionFactory.getSession();
List list = null;
String str = "from MemberInfo where 1=1";
if(minAge!=null && maxAge!=null) {
str = str +" and age between "+minAge+" and "+maxAge;
}
if(!gender.equals("unlimited")) {
if(gender.equals("0")) {
str = str+" and gender='0'";
}else {
str = str+" and gender='1'";
}
}
if(!provincecity.equals("unlimited")) {
str = str +" and provinceCity="+provincecity;
}
Query query = session.createQuery(str+"order by nickName");
query.setFirstResult(start);
query.setMaxResults(end);
list = query.list();
return list;
}
解决方案 »
- 怎么实现 帮个忙啊
- 万般无奈下的求助
- java做水晶报表一般都用那些技术,能否提供些demo
- StringBuilder和String测试结果的疑问
- 关于jdk环境变量配置的问题
- A:jsp页面分页真的可笑么??那分页到底怎样才能更好...
- 紧急!!紧急!!
- 各位大爷帮帮忙,如何实现网洛报价/数据抓取
- 急急急!!!!!!一个sessionListener的问题
- 用jbuilder开发ejb还要装什么其他的东西呢?
- connect 'jdbc:rmi://localhost:1099/jdbc:cloudscape:addressbook;create=true'是什么意思啊
- Weblogic 8.1 如何记录用户度应用程序的操作日志
我看你代码,还是先判断,再追加。有没有好的解决办法?
具体讲(以查user为例, user有name、 age 、pwd等属性)
比如已知name 和 age,查这个user,
那么可以构建一个user(作为查询用到的example,注意这里不需要判断name、age是否为空,直接可以赋值)
User user = new User();
use.setName(xxx);...Example example = Example.create(user);
Criteria criteria = session.createCriteria(User.class).add(example);
这样可能符合你的要求。
我想再问一个问题:在hibernate执行HQL查询时,都是利用From POJO,即将POJO的属性全部列出来;尤其是多张表进行连接查询时,它将所有POJO的属性全部列出来了。我觉得这样比较损耗性能。有没有方法来指定属性?即我不需要全部查询出来,只显示几个重要的属性?
谢谢!
2 你不必担心搜出全部属性会影响性能,事实上,在from POJO时hibernate并没有搜出全部的属性,而只是取出了id,而qita的属性在使用的时候才会被拿出来。
谢谢!结贴了。
example在处理日期比较怎么做?即我要查询为brithday大于'2008-04-22'和小于'2008-04-23'的记录,用
example怎么做?谢谢!