HQL语句查询中一些参数设置的问题

时间:2022-08-27 22:03:33

以前在用hibernate写查询的时候,都是带两个参数的查询,这样的话不利于放在底层,也就是不利于代码的

重复使用,下面是带两个参数的代码:

 

HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题public  List find(String queryString, String value)  ... {
HQL语句查询中一些参数设置的问题  Session session 
= sessionManage.currentSession();
HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题  
try ...{
HQL语句查询中一些参数设置的问题   Query query 
= session.createQuery(queryString); 
HQL语句查询中一些参数设置的问题   query.setString(
0, value);    
HQL语句查询中一些参数设置的问题   query.setCacheable(cacheable);   
HQL语句查询中一些参数设置的问题   
return query.list();
HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题  }
 catch (HibernateException e) ...{
HQL语句查询中一些参数设置的问题   BaseService.getInstance().getContext().log(
HQL语句查询中一些参数设置的问题    
"[PersistMap][find] HibernateException ",
HQL语句查询中一些参数设置的问题    e);
HQL语句查询中一些参数设置的问题   
return null;
HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题  }
 finally ...{
HQL语句查询中一些参数设置的问题   sessionManage.closeSession();
HQL语句查询中一些参数设置的问题  }

HQL语句查询中一些参数设置的问题 }
 

 

如果加上一个参数的话,加上,Hibernate内置的一个对象Type,这样就可以产生你想要的数据类型,

可以直接写query.setParameter(0, value, type);    这种形式,你可以在任何地方调用这个函数

并且可以带上你想要的类型。而且里面的值都可以是对象数组形式,下面是这种方法的事例代码:

 

HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题public  List find(String queryString, Object value, Type type)  ... {
HQL语句查询中一些参数设置的问题  Session session 
= sessionManage.currentSession();
HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题  
try ...{
HQL语句查询中一些参数设置的问题   Query query 
= session.createQuery(queryString); 
HQL语句查询中一些参数设置的问题   query.setParameter(
0, value, type);    
HQL语句查询中一些参数设置的问题   query.setCacheable(cacheable);   
HQL语句查询中一些参数设置的问题   
return query.list();
HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题  }
 catch (HibernateException e) ...{
HQL语句查询中一些参数设置的问题   BaseService.getInstance().getContext().log(
HQL语句查询中一些参数设置的问题    
"[PersistMap][find] HibernateException ",
HQL语句查询中一些参数设置的问题    e);
HQL语句查询中一些参数设置的问题   
return null;
HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题  }
 finally ...{
HQL语句查询中一些参数设置的问题   sessionManage.closeSession();
HQL语句查询中一些参数设置的问题  }

HQL语句查询中一些参数设置的问题 }

HQL语句查询中一些参数设置的问题
HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题 
/**/ /* (非 Javadoc)
HQL语句查询中一些参数设置的问题  * @see com.cn001play.general.database.IQueryPersist#find(java.lang.String, java.lang.Object[], net.sf.hibernate.type.Type[])
HQL语句查询中一些参数设置的问题  
*/

HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题 
public  List find(String queryString, Object[] values, Type[] types)  ... {
HQL语句查询中一些参数设置的问题  Session session 
= sessionManage.currentSession();
HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题  
try ...{
HQL语句查询中一些参数设置的问题   Query query 
= session.createQuery(queryString);
HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题   
for (int i = 0; i < values.length; i++...{
HQL语句查询中一些参数设置的问题    query.setParameter(i, values[i], types[i]);    
HQL语句查询中一些参数设置的问题   }

HQL语句查询中一些参数设置的问题   query.setCacheable(cacheable);
HQL语句查询中一些参数设置的问题   
return query.list();   
HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题  }
 catch (HibernateException e) ...{
HQL语句查询中一些参数设置的问题   BaseService.getInstance().getContext().log(
HQL语句查询中一些参数设置的问题    
"[PersistMap][find] HibernateException ",
HQL语句查询中一些参数设置的问题    e);
HQL语句查询中一些参数设置的问题   
return null;
HQL语句查询中一些参数设置的问题HQL语句查询中一些参数设置的问题  }
 finally ...{
HQL语句查询中一些参数设置的问题   sessionManage.closeSession();
HQL语句查询中一些参数设置的问题  }

HQL语句查询中一些参数设置的问题 }

HQL语句查询中一些参数设置的问题