灵活使用Hibernate的查询对象DetachedCriteria
来源:互联网 发布:excel怎么查找重复数据 编辑:程序博客网 时间:2024/05/17 23:49
Hibernate提供了HQL,方便查询的编写。但是在某些情况下,我更喜欢用Criteria,因为它的语义非常明确。
在处理对象关联的时候,经常要对对象下的某个集合字段进行条件限制。比如下面的类:
public class MainClass
{
protected long id;
protected int type;
protected Set<SubClass>
subs= new HashSet<SubClass>();
...... getter/setter
}
public class SubClass
{
protected long id;
protected int value;
protected Set<MainClass> ms = new HashSet<MainClass>();
...... getter/setter
}
在初始化数据中,假设MainClass的实例m1含有SubClass的实例s1,s2,s3;MainClass的实例m2含有SubClass的实例s2,s3,s4。
而其中s1,s2,s3,s4的value分别是1,2,3,4
现在要查询出 MainClass中SubClass集合含有SubClass实例value为2的的MainClass实例并且type为1,可以使用下面的查询方法:
DetachedCriteria criteria = DetachedCriteria.forClass(MainClass.class);
criteria
.add(Restrictions.eq("type", new Integer(1)))
.createAlias("subs", "s")
.add(Restrictions.eq("s.value", new Integer(2)));
执行此查询对象后会得到符合条件的MainClass实例。
需要注意的是在获取的MainClass实例中,subs是完全的记录集,而不是经过过滤的记录集,也就是相当于根据MainClass的ID获取的完整实例一样。
ps:
如果需要过滤subs的记录集,需要使用额外的过滤方法,请参考Hibernate的具体实现。
使用HQL也可以很方便地实现,但是需要给出完整的join标记,不如createAlias来得方面和直观。
post by:Hubert Star(hubertstar@gmail.com)
- 灵活使用Hibernate的查询对象DetachedCriteria
- 灵活使用Hibernate的查询对象DetachedCriteria
- 灵活使用Hibernate的查询对象DetachedCriteria
- hibernate DetachedCriteria中的查询语句的使用
- Hibernate中DetachedCriteria的使用
- Hibernate中DetachedCriteria的使用
- Hibernate中DetachedCriteria的使用
- Hibernate中DetachedCriteria的使用
- Hibernate中DetachedCriteria的使用
- Hibernate中DetachedCriteria的使用
- Hibernate使用DetachedCriteria和Criteria查询
- hibernate中DetachedCriteria查询的用法
- Hibernate的Criteria和DetachedCriteria 查询
- Hibernate的动态条件查询DetachedCriteria
- (hibernate查询)DetachedCriteria对象创建可以不需要使用session去创建
- Hibernate-DetachedCriteria离线查询
- hibernate DetachedCriteria 查询
- 使用Hibernate Criteria完成灵活的组合查询
- 玩玩Spring之Rod Johnson 与“轮子理论”
- 玩玩Spring之初章
- 关于J2EE程序员的武器探讨
- 玩玩Spring之八卦MVC框架与 “中庸”之道 (二)
- 玩玩Spring之八卦MVC框架与 “中庸”之道(一)
- 灵活使用Hibernate的查询对象DetachedCriteria
- 玩玩Spring之IOC(一)
- 免费的Bug单处理
- 自我分析--惰性的形成以及提高现有的精神状况
- getting-started with PHP/CURL.
- 读《80前的前辈,你们都做了什么?!》一文有感。
- 如何正确得到FAT文件系统剩余容量
- 扯淡印度软件
- SQL Server连接中的四个最常见错误: