Hibernate DetachedCriteria

hibernate DetachedCriteria(hibernate 分离/离线查询)

 

使用DetachedCriteria类可以在session之外构造一个查询条件,而不受session的约束。同时也很好的实现了

 

分层。并且对于动态查询也有不错的作用。

 

public static void detachedQuery(String name, Date birthday) {
  DetachedCriteria dc = DetachedCriteria.forClass(Users.class);
  List<Users> users = null;

  if (name != null && !"".equals(name)) {
   dc.add(Restrictions.eq("username", name));
  }
  if (birthday != null && !"".equals(birthday)) {
   dc.add(Restrictions.gt("birthday", birthday));
  }
  users = detachedCriteriaQuery(dc);
  if (users != null && !users.isEmpty()) {
   for (Users user : users) {
    System.out.println(user.getUsername() + "-----"
      + user.getBirthday());
   }
  }
 }

 

public static List<Users> detachedCriteriaQuery(DetachedCriteria dc) {
  List<Users> users = null;
  Session session = null;
  try {
   session=HibernateSessionFactory.getSession();
   Criteria criteria = dc.getExecutableCriteria(session);
   users = criteria.list();
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   if (session != null) {
    session.close();
   }
  }
  return users;
 }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值