`
hbcui1984
  • 浏览: 149324 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hql语句中可以实现批量删除或者查询的功能吗

阅读更多
在查询时,传入一个id的数组,然后提取这些id的对象,利用Hql语句可以实现吗?
我今天实验了一下,发现总不太对

	    String[] ids = {"4aec7b4a0e96cf8c010e96f35edd000b","4aec7b4a0e96cf8c010e96f5353b000e"};
	    
            String str="";
	    for(int i=0;i<ids.length;i++){
			str+="'"+ids[i]+"'";
			if(i!=(ids.length-1))
			    str+=",";
	    	}

	    List list;
	    try {
    		list = appinfoManager.find("from Appinfo where id in (?)",str);
    		System.out.println("共有"+list.size()+"条记录");
	    } catch (DaoException e) {
			e.printStackTrace();
	    }


查询结果为0条记录,但是数据库中确实存在这些记录。
其实这些在sql中应该可以实现的,不知道在hql语句中为什么不行
分享到:
评论
3 楼 hbcui1984 2007-01-16  
谢谢楼上两位正解,我试了一下,两位的方法都不错
我把这个问题稍微总结了一下,有兴趣的可以参看:
http://blog.csdn.net/hbcui1984/archive/2006/12/05/1431011.aspx
2 楼 codeutil 2007-01-15  

String  ids[]=new  String[]{"1","2","3"};  
 
String  hql=  "  from Appinfo where id  in  (?)";  
 
 Query  query  =  session.createQuery(hql);  
query  .setParameterList(ids);  

see:

 Query  setParameters(Object[]  objectArray,  Type[]  typeArray)  throws  HibernateException;  
   Query  setParameterList(String  string,  Collection  collection,  Type  type)  throws  HibernateException;  
   Query  setParameterList(String  string,  Collection  collection)  throws  HibernateException;  
   Query  setParameterList(String  string,  Object[]  objectArray,  Type  type)  throws  HibernateException;  
   Query  setParameterList(String  string,  Object[]  objectArray)  throws  HibernateException;  

1 楼 yiqing1982 2007-01-15  
hbcui1984 写道
在查询时,传入一个id的数组,然后提取这些id的对象,利用Hql语句可以实现吗?
我今天实验了一下,发现总不太对

	    String[] ids = {"4aec7b4a0e96cf8c010e96f35edd000b","4aec7b4a0e96cf8c010e96f5353b000e"};
	    
            String str="";
	    for(int i=0;i<ids.length;i++){
			str+="'"+ids[i]+"'";
			if(i!=(ids.length-1))
			    str+=",";
	    	}

	    List list;
	    try {
    		list = appinfoManager.find("from Appinfo where id in (?)",str);
    		System.out.println("共有"+list.size()+"条记录");
	    } catch (DaoException e) {
			e.printStackTrace();
	    }


查询结果为0条记录,但是数据库中确实存在这些记录。
其实这些在sql中应该可以实现的,不知道在hql语句中为什么不行


	    String[] ids = {"4aec7b4a0e96cf8c010e96f35edd000b","4aec7b4a0e96cf8c010e96f5353b000e"};
	    
            String str="";
	    for(int i=0;i<ids.length;i++){
			str+="'"+ids[i]+"'";
			if(i!=(ids.length-1))
			    str+=",";
	    	}

	    List list;
	    try {
    		list = appinfoManager.find("from Appinfo where id in ("+str+")");
    		System.out.println("共有"+list.size()+"条记录");
	    } catch (DaoException e) {
			e.printStackTrace();
	    }

这样估计就可以了,你试下呢

相关推荐

    hql批量删除

    批量删除数据批量插入数据 9.4.4 直接通过JDBC API来进行批量操作 当通过JDBC API来执行SQL insert、update和delete语句时,SQL语句中涉及到的数据不会被加载到内存中,因此不会占用内存空间。 以下程序直接通过JDBC...

    基于SpringJDBC的轻量级ORM框架sborm.zip

    3、QueryBuilder:单表查询基本上都可以实现零Sql(除非查询条件特别复杂的),更新、删除等操作也可以通过QueryBuilder进行批量处理,不局限于根据主键来处理。 4、分表操作的支持:对于分表操作和常规的使用...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 ...

    最全Hibernate 参考文档

    14.13. 批量的UPDATE & DELETE语句 14.14. 小技巧 & 小窍门 15. 条件查询(Criteria Queries) 15.1. 创建一个Criteria 实例 15.2. 限制结果集内容 15.3. 结果集排序 15.4. 关联 15.5. 动态关联抓取 15.6. 查询示例 ...

    Hibernate3+中文参考文档

    14.13. 批量的UPDATE & DELETE语句 14.14. 小技巧 & 小窍门 15. 条件查询(Criteria Queries) 15.1. 创建一个Criteria 实例 15.2. 限制结果集内容 15.3. 结果集排序 15.4. 关联 15.5. 动态关联抓取 15.6. 查询示例 ...

    hibernate3.04中文文档.chm

    15.13. 批量的UPDATE & DELETE语句 15.14. 小技巧 & 小窍门 16. 条件查询(Criteria Queries) 16.1. 创建一个Criteria 实例 16.2. 限制结果集内容 16.3. 结果集排序 16.4. 关联 16.5. 动态关联抓取 16.6. ...

    hibernate 框架详解

    批量的UPDATE & DELETE语句 15.14. 小技巧 & 小窍门 16. 条件查询(Criteria Queries) 16.1. 创建一个Criteria 实例 16.2. 限制结果集内容 16.3. 结果集排序 16.4. 关联 16.5. 动态关联抓取 16.6. 查询示例...

    Hibernate教程

    15.13. 批量的UPDATE & DELETE语句 15.14. 小技巧 & 小窍门 16. 条件查询(Criteria Queries) 16.1. 创建一个Criteria 实例 16.2. 限制结果集内容 16.3. 结果集排序 16.4. 关联 16.5. 动态关联抓取 16.6. 查询...

    hibernate总结

    持久化类的对象,在hibernate应用中可以处于三种状态(根据对象和session之间的关系进行划分): 1. 临时态,瞬态:特点: a) 在数据库中没有记录和它对应 b) 和session没有任何关系 c) New 出来的对象,都处于临时...

Global site tag (gtag.js) - Google Analytics