Java Criteria使用方法

Criteria Query 可以看作传统sql的对象化表示。
Criteria 可以由session创建。

Criteria ct= session.createCriteria(TUser.class);

先来一段小Demo:

TbItemParamExample example = new TbItemParamExample(); Criteria criteria = example.createCriteria(); criteria.andItemCatIdEqualTo(cid);

1|0Criteria中可以增加查询条件

ct.add(Expression.eq("name","Erica")); ct.add(Expression.eq("sex",new Integer(1)));

Criteria中增加的查询条件可以由表达式对象创建
Expression.eq(对象属性名,对象属性值);

查询条件通过Criteria的add方法加入。

表达式对象的方法有:

  • eq 等于,第一个参数是对象属性,第二个参数是值

  • allEq 参数为一个Map对象,相当于多个eq的叠加

  • gt 大于

  • ge 大于等于

  • lt <

  • le <=

  • between 在两个值之间Expression.between("age",new Integer(10),new Integer(20));

  • like like查询

  • in in查询

  • eqProperty 用于比较两个对象的属性的值是否相等

  • gtProperty

  • geProperty

  • ltProperty

  • leProperty

  • and and方法可以嵌套Expression对象,用于and关系

  • or 同上

    Expression.or( Expression.eq("name","hulei"), Expression.eq("name","jane") );

sql 作为Expression对象的补充,本方法提供对原生sql的支持。注意,在Hibernate3中,引入了Restrictions类作为Expression的替代,以后的版本,不再推荐使用Expression。

但是,Restrictions类的使用方法和Expression的方法一致。注意,在查询条件中,Hibernate提供了一个Example查询,当查询条件比较多的时候,可以用Example查询来简化代码,使用方法如下:

TUser user=new TUser(); user.setLoginName("hulei"); user.setPassword("hulei"); Criteria ct=session.createCriteria(TUser.class); ct.add(Example.create(user)); return ct.list();

2|0复合查询

Criteria查询可以嵌套Criteria来实现复合查询
如下:

Criteria ct=session.createCriteria(TUser.class); Criteria ctAddress=ct.createCriteria("addresses");//这里是嵌套了一个Criteria查询,这里的addresses是TUser的属性 ctAddress.add(Expression.like("address","%shanghai%")); List list=ct.list();

__EOF__

本文作者咫尺是梦
本文链接https://www.cnblogs.com/satire/p/14954767.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   satire  阅读(7932)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示