hibernate通过判断参数动态组合Hql语句,生成基本通用查询

 1 //     
 2     public List find(Station entity) {
 3         List reuslt = null;
 4
 5         // 字符串辅助类
 6         StringBuffer hql = new StringBuffer("from Station where 1=1");
 7
 8         List vp = new ArrayList();
 9
10         if (entity != null) {
11
12             //小于0的和null都不做比较
13             if (entity.getCzdm() != null&&entity.getCzdm()<0) {
14                 hql.append(" and czdm=?");
15                 vp.add(entity.getCzdm());
16             }
17
18             //空字符串和null都不做比较
19             if (entity.getCzmc() != null&&entity.getCzmc().length()>0) {
20                 hql.append(" and czmc = ?");
21                 vp.add(entity.getCzmc());
22             }
23
24             if (entity.getDj() != null) {
25                 hql.append(" and dj=?");
26                 vp.add(entity.getDj());
27             }
28         }
29
30         Query q = gs().createQuery(hql.toString());
31
32         for (int i = 0; i < vp.size(); i++) {
33             q.setParameter(i, vp.get(i));
34         }
35
36         reuslt = q.list();
37         return reuslt;
38     }
时间: 2024-08-03 23:08:08

hibernate通过判断参数动态组合Hql语句,生成基本通用查询的相关文章

sqlalchemy动态组合查询语句。

if filter_type == 1: search = and_(GameRoom.status ==1,or_( and_(GameRoom.white_user_id == user_id, GameRoom.active_player == 1), and_(GameRoom.black_user_id == user_id, GameRoom.active_player == 0))) elif filter_type == 2: search = and_(GameRoom.sta

Hibernate入门(六)---------HQL语句

Query: 代表面向对象的一个Hibernate查询操作.在Hibernate中,通常使用session.createQuery()方法接收一个HQL语句,然后调用Query的 list()或uniqueResult()方法执行查询.所谓的HQL是Hibernate Query Language缩写,其语法很像SQL,但它是完全面向对象的. 在Hibernate中使用Query对象的步骤,具体: 1.获得Hibernate的Session对象 2.编写HQL语句 3.调用session.cre

[Hibernate] 通过 properties 类和 hql 语句进行动态查询

//需要保证Emp和EmpProperties中的setter和getter以及属性以及 参数占位符(:eName) 的一致//动态查询 @Test public void test4(){ EmpProperties ep=new EmpProperties(); //set query conditions ep.seteName("%A%"); ep.setStartDate(new Date(383155200000L)); ep.setEndDate(new Date());

【SSH】Hibernate:常用的HQL语句

Hibernate query language 简称HQL,是实际开发中最长的hibernate查询封装模式. HQL提供了更加接近传统SQL语句的查询方法: <span style="font-family:Verdana;font-size:14px;">[select/update/delete-] [from-][where-][groupby-] [having -][order by-]</span> 实体查询: <span style=&q

hibernate 之 HQL语句总结【转】

1. 查询整个映射对象所有字段 //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 String hql = "from Users"; Query query = session.createQuery(hql); List<Users> users = query.list(); for(Users user : users){ System.out.println(user.getName() + " : " + user.ge

hibernate -- HQL语句总结

hiberante 这个曾经火了一时的东西,现在项目用到了 被迫学习 from users会返回对象 select  id ,name from user 会返回数组. 我想返回 部分对象的内容 select user(id,name) from user; 直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段            String hql = "from Users";            Query query = session.createQuer

Hibernate HQL语句使用总结

1. 查询整个映射对象所有字段 //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段           String hql = "from Users";           Query query = session.createQuery(hql);                       List<Users> users = query.list();           for(Users user : users){          

Hibernate写hql语句与不写hql语句的区别?

写hql语句与不写hql语句的区别? 写hql语句:书写HQL语句,所有的查询与投影的设计均使用HQL语句完成. 不写hql语句:没有任何查询语句,所有的查询与投影的设计使用面向对象格式完成. 二者选用的时机: 不写hql语句,有时比较方便,在不考虑复杂的查询的情况下,可以使用,此方法把某些Hibernate的方法封装起来,不灵活. 写hql语句,复杂的业务逻辑,建议使用,灵活方便. 以下通过俩种方法的对比来着重介绍一下hibernate不写hql的一种简单用法. 写hql语句: 具有丰富的灵活

使用HQL语句的按照参数名字查询数据库信息的时候 “=:”和参数之间不能存在空格,否则会报错

问题描述: 今天在使用HQL的按照参数的名字查询数据库信息的时候报错如下: org.hibernate.QueryException: Space is not allowed after parameter prefix ':' [from Users user where user.address=: userAddress] at org.hibernate.engine.query.spi.ParameterParser.parse(ParameterParser.java:95) at