Hibernate allEq方法:设置一系列的相等条件

allEq 方法用于设置一系列的相等条件,相当于多个 Restrictions.eq 方法的叠加。

语法:

allEq(Map propertyNameValues)

参数说明:

  • propertyNameValues:参数为一个 Map 对象,其中包含了多个属性值的对应关系。

返回值:Criterion 对象的示例。

说明:应用 allEq 方法时,生成的相等表达式是通过 and 来连接的,也就是需要满足添加的所有条件。

示例

查询用户名为 sk 且密码为 111 的用户信息,关键代码如下:

Criteria criteria = session.createCriteria(UserForm.class);  //获取Criteria对象
Map map = new HashMap();  //创建Map对象
map.put("username","sk");  //向Map中添加对象
map.put("pwd","111");
criteria.add(Restrictions.allEq(map));  //设置向导条件
list = criteria.list();

典型应用

Restrictions 类的 allEq 方法可实现设置一系列的查询条件,并将这些查询条件保存在 Map 集合中。本示例实现使用该方法查询清华出版社出版的“Java从入门到精通”的图书价格。

本示例使用 Hibernate 框架查询数据,在使用该框架前要创建与图书表 tb_bookes 对应的 JavaBean 对象 Books,以及其映射文件 Books.hbm.xml,可参考下载的源码。创建 Find 类,在该类中定义查询数据方法,关键代码如下:

public static void main(String[] args){
  Session session = null;  //声明Session对象
  try{
    session = HibernateUtil.getSession();  //获取Session
    session.beginTransaction();  //开启事务
    Criteria criteria = session.createCriteria(Books.class);  //获取Criteria对象
    Map map = new HashMap();  //创建Map对象
    map.put("bName","Java开发宝典");  //向Map中添加对象
    map.put("bookConcern","机械工业");
    criteria.add(Restrictions.allEq(map));  //设置查询条件
    List list = criteria.list();  //获取查询结果集
    for(int i=0;i<list.size();i++){  //循环遍历查询结果集
      Books book = (Books)list.get(i);  //获取集合中元素
      System.out.println("机械工业的图书Java开发宝典的价格是:"+book.getPrice());
    }
    session.getTransaction().commit();  //提交事务
  }catch(Exception e){
    e.printStackTrace();
    session.getTransaction().rollback();  //出错将回滚事务
  }finally{
    HibernateUtil.closeSession(session);  //关闭Session对象
  }
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/22909.html

(0)
上一篇 2021年7月20日
下一篇 2021年7月20日

相关推荐

发表回复

登录后才能评论