Hibernate模糊查询
1.不使用hql
DetachedCriteria criteria = DetachedCriteria.forClass(User.class);if (StringUtils.isNotEmpty(yh)) {criteria.add(Restrictions.or(Restrictions.eq("yhid", yh),Restrictions.like("yhxm", yh, MatchMode.ANYWHERE)));}List<User> userList = (List<User>) hibernateTemplate.findByCriteria(criteria);for (User user : userList) {hibernateTemplate.getSessionFactory().getCurrentSession().evict(user);}return userList;
2.使用hql
@Overridepublic List<User> selectUserByIdOrXm(String yh, int start, int size) {Session session = hibernateTemplate.getSessionFactory().getCurrentSession();String hql = "FROM User WHERE YHID = :yhid OR YHXM LIKE :yhxm";Query query = session.createQuery(hql);if (StringUtils.isNotEmpty(yh)) {query.setParameter("yhid", yh).setParameter("yhxm", "%" + yh + "%").setFirstResult(start).setMaxResults(size);}List list = query.list();for (Object o : list) {session.evict(o);}return list;}