admin 管理员组文章数量: 1086019
2024年3月28日发(作者:动易政府网站模板)
detachedcriteria用法
DetachedCriteria是Hibernate框架提供的一种高级查询实现方
式,在实际工作中也是使用较为广泛的一种查询方式。本文将结合例
子,分步骤阐述DetachedCriteria的用法。
第一步:创建DetachedCriteria对象
DetachedCriteria是Criteria的一个新的且独立的实例,因此
需要通过ss()方法创建它。比如我们要查询
某个表中id值为1的记录,可以这样写:
DetachedCriteria criteria =
ss();
第二步:添加查询条件
DetachedCriteria是动态添加查询条件的,可以通过调用add()
方法添加查询条件,该方法接收一个Criterion参数,Criterion是
Hibernate提供的查询条件接口。比如我们要查询id等于1的记录,
可以这样写:
(("id", 1));
这里的()方法表示等于,第一个参数表示属性
名,第二个参数表示属性值。
第三步:设置投影(Projection)和关联查询(Join)
投影是用来选择要查询的属性的,可以使用Projections来实现。
比如我们要查询id和name两个属性,可以这样写:
jection(tionList()
.add(ty("id"))
.add(ty("name")));
这里的ty()方法表示要查询的属性名。而如
果要进行关联查询,可以使用createAlias()方法创建关联,并用别名
代替原本的属性名。比如我们要查询用户表和角色表的数据,可以这
样写:
Alias("role", "r")
.add(("me", "管理员"));
这里的createAlias()方法中,第一个参数表示要关联的属性名,
第二个参数表示用什么别名代替它。
第四步:执行查询
执行查询有两种方式:使用HibernateTemplate的
findByCriteria()方法和使用Hibernate的Query对象的
DetachedCriteria查询。
下面是使用HibernateTemplate的findByCriteria()方法查询:
List
Criteria(criteria);
使用Hibernate的Query对象的DetachedCriteria查询:
Session session = ssion();
Criteria executableCriteria =
cutableCriteria(session);
List
();
需要注意的是,在使用完DetachedCriteria对象后,一定要将
其还原,否则会影响后面的查询。可以使用()方法还
原。
最后,完整的示例代码如下:
DetachedCriteria criteria =
ss()
.add(("id", 1))
.createAlias("role", "r")
.add(("me", "管理员"))
.setProjection(tionList()
.add(ty("id"))
.add(ty("name")));
List
Criteria(criteria);
// 或
Session session = ssion();
Criteria executableCriteria =
cutableCriteria(session);
List
();
();
以上就是DetachedCriteria的用法,希望能对您有所帮助。
版权声明:本文标题:detachedcriteria用法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1711627474a602520.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论