论坛首页 Java企业应用论坛

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

浏览 7934 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-15  
在查询时,传入一个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语句中为什么不行
   发表时间: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();
	    }

这样估计就可以了,你试下呢
0 请登录后投票
   发表时间: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;  

0 请登录后投票
   发表时间:2007-01-16  
谢谢楼上两位正解,我试了一下,两位的方法都不错
我把这个问题稍微总结了一下,有兴趣的可以参看:
http://blog.csdn.net/hbcui1984/archive/2006/12/05/1431011.aspx
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics