J2EE 初识DetachedCriteria查询

随着一点一点的学习.再回过头来看以前的博客.

觉得自己当初多么可笑.

最近越来越懒.好久没有写博客记录学习笔记了.

今天把以前早就打算写的DetachedCriteria 查询做个整理.

认识还不够.有什么不对的地方希望大神指出.

通过网上了解,还有这段时间的使用.只是知道DetachedCriteria 可以用于查询.

至于好在哪.或者是效率高在哪.完全不知道.

只是会用.觉得DetachedCriteria 可以完成的hql也可以完成.

其他不说了.下面是学习中的一些记录:

我常用的有DetachedCriteria 的如下方法:

add(Criterion criterion) 

addOrder(Order order) 

createAlias(String associationPath, String alias) 

目前我只用了这三个方法.

add

首先初始化一个DetachedCriteria对象:

DetachedCriteria dc = DetachedCriteria.forClass(Car.class);
dc.add(Restrictions.eq("carNo", "川A88888"));//查询carNo为"川A88888"的对象
dc.add(Restrictions.like("carName","%奔驰%"));//模糊查询carName为奔驰的对象
dc.add(Restrictions.between("date", date1, date2));//查询日期在date1与date2之间的对象,当然不止可以查询日期
dc.add(Restrictions.isNotNull("driver"));//查询driver不为空的,当然对应的还有isNull,isEmpty等


其他常用方法:

allEq(Map propertyNameValues) 使用Map完成多个对比(其实个人觉得多做几次eq也是可以的)
and(Criterion lhs, Criterion rhs) 同sql语句中的and
ge(String propertyName, Object value) >=
gt(String propertyName, Object value) >
in(String propertyName, Collection values) 同sql中的in
le(String propertyName, Object value) <=
lt(String propertyName, Object value) <
or(Criterion lhs, Criterion rhs) 同sql中的or
sqlRestriction(String sql) 使用sql语句查询


addOrder(Order order)

排序
dc.addOrder(Order.desc("createdDate"));//根据createDate排序,当然肯定有Order.asc

createAlias

我用于有外键关联的查询
假如Car.class中有一个属性:
public class Car{
     private User driver;

     getter and setter...
}

User.class:
public class User{
     private String name;

         getter and setter...
}

做好映射关联后就可以查询Car中driver.name为陈师傅的了

dc.add(Restrictions.like("driver.name","%陈%"));//当然eq,between等其他方法都可以
dc.createAlias("driver", "driver");



所有条件都可以任意组合.

查询

Criteria criteria = dc.getExecutableCriteria(getSession());
List<Car> cars = criteria.list();

一次查询就完成了.

有什么不对或者不懂的地方希望大家留言讨论

Zemo手打,转载请标明出处: http://blog.csdn.net/zemochen/article/details/23962687

参考文档:

DetachedCriteria API文档:http://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/criterion/DetachedCriteria.html

Restrictions API文档:http://docs.jboss.org/hibernate/orm/3.3/api/org/hibernate/criterion/Restrictions.html

以前学习的时候还参考了好多网友的博客,现在已经找不到了.谢谢大家.



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值