`
mqchange
  • 浏览: 33074 次
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate DetachedCriteria

阅读更多

hibernate DetachedCriteria(hibernate 分离/离线查询)

 

使用DetachedCriteria类可以在session之外构造一个查询条件,而不受session的约束。同时也很好的实现了

 

分层。并且对于动态查询也有不错的作用。

 

public static void detachedQuery(String name, Date birthday) {
  DetachedCriteria dc = DetachedCriteria.forClass(Users.class);
  List<Users> users = null;

  if (name != null && !"".equals(name)) {
   dc.add(Restrictions.eq("username", name));
  }
  if (birthday != null && !"".equals(birthday)) {
   dc.add(Restrictions.gt("birthday", birthday));
  }
  users = detachedCriteriaQuery(dc);
  if (users != null && !users.isEmpty()) {
   for (Users user : users) {
    System.out.println(user.getUsername() + "-----"
      + user.getBirthday());
   }
  }
 }

 

public static List<Users> detachedCriteriaQuery(DetachedCriteria dc) {
  List<Users> users = null;
  Session session = null;
  try {
   session=HibernateSessionFactory.getSession();
   Criteria criteria = dc.getExecutableCriteria(session);
   users = criteria.list();
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   if (session != null) {
    session.close();
   }
  }
  return users;
 }

 

 

1
3
分享到:
评论
1 楼 lingceng 2012-11-09  
DetachedCriteria不建议这样使用,它的用处更多在于与Criteria的子查询。如果想分层的动态查询,可以考虑使用会掉,返回Criteria。DetachedCriteria只有简单的查询操作,相比Critria是少很多的。

另外,代码请使用代码模块,这可能是文章被踩的原因。

相关推荐

    Hibernate(24): 为什么用DetachedCriteria不能表连接地取数据?

    在Java的持久化框架Hibernate中,DetachedCriteria是一个强大的查询工具,它允许我们在不与Session交互的情况下构建查询条件。然而,DetachedCriteria在处理复杂的关联查询,尤其是涉及到表连接(JOIN)时,可能存在...

    Hibernate - DetachedCriteria 的完整用法

    "Hibernate - DetachedCriteria 的完整用法" Hibernate 的 Criteria 和 DetachedCriteria 是两个不同的概念,虽然它们都是用于查询数据的,但它们在创建和使用上有所不同。 首先,Criteria 是在线的,需要通过 ...

    Hibernate 使用DetachedCriteria操作

    **Hibernate 框架及其DetachedCriteria操作详解** Hibernate 是一个强大的Java持久化框架,它极大地简化了数据库操作,使得开发者能够用面向对象的方式处理数据库事务。本篇将深入探讨Hibernate中的...

    java导出excel的详细例子

    此外,还利用了`Apache Commons BeanUtils`来进行对象属性的操作,以及`Hibernate`的`DetachedCriteria`进行数据查询。以下是具体的关键技术和工具: - **jxl**:用于读写Excel文件。 - **Apache Commons BeanUtils*...

    DetachedCriteria查询

    DetachedCriteria 是 Hibernate 中的一种离线查询对象,它可以在不依赖 Session 的情况下生成动态 SQL 语句并进行查询。下面是 DetachedCriteria 查询的详细知识点: 创建 DetachedCriteria 对象 DetachedCriteria...

    DetachedCriteria使用介绍

    `DetachedCriteria` 是 Hibernate 提供的一种灵活且强大的查询机制,它允许你在脱离 Session 的情况下构建复杂的查询标准,这意味着你可以提前构建查询标准,然后在任何地方执行查询,而无需关心当前是否有 Session...

    Hibernate_query查询数据表中的一个字段.

    总结,Hibernate提供多种方式查询数据表中的字段,包括HQL、Criteria API和DetachedCriteria,选择合适的方法取决于具体需求。正确理解和使用Hibernate,能够大大提高Java开发中的数据库操作效率。

    Hibernate执行持久层访问步骤

    2. QBC查询:Query By Criteria API允许基于Java对象属性进行查询,通过Criteria、DetachedCriteria构建查询条件。 3. SQL查询:对于更复杂的查询需求,可以使用Session的createSQLQuery()方法,直接编写SQL语句。 ...

    Hibernate的Criteria用法总结

    Criteria用于在线查询,直接与Hibernate Session关联,而DetachedCriteria则可在不依赖Session的情况下创建,适用于离线或延迟执行的查询。DetachedCriteria可以通过`forClass(Class)`或`forEntityName(String)`静态...

    hibernate in action 中文版书籍

    5. ** Criteria和DetachedCriteria**:详细阐述Criteria查询的使用,包括条件查询、排序、分页,以及DetachedCriteria的概念,用于创建可复用的查询模板。 6. **事务和缓存**:讨论Hibernate的事务管理,包括编程式...

    Hibernate思维导图

    11. **Criteria API的子集:DetachedCriteria**:DetachedCriteria可以在不直接与数据库交互的情况下构建查询条件,然后在需要的时候再执行,有利于提高性能。 12. **一对多(One-to-Many)、多对一(Many-to-One)...

    Hibernate3中文文档

    8. ** Criteria API的DetachedCriteria**:DetachedCriteria允许在不打开Session的情况下构建查询,之后在需要时再与Session结合执行,适合于分页查询和延迟加载。 9. **缓存机制**:Hibernate提供了第一级缓存...

    Hibernate 手册中文版chm格式

    5. Criteria API和DetachedCriteria:进一步深入,探讨如何使用Criteria API执行复杂的查询,并介绍DetachedCriteria,用于在不同会话间构建和执行查询。 6. Native SQL:当需要充分利用数据库特定特性时,可以使用...

    Hibernate 3.2.0 中文官方文档

    7. **Criteria API与DetachedCriteria**:Criteria API用于构建动态查询,DetachedCriteria则允许在不接触SessionFactory的情况下构造查询,适用于复杂的查询场景。 8. **集合映射**:如何处理一对多、多对一、多对...

    hibernate中文参考文档pdf

    7. **Criteria API的DetachedCriteria**:允许在不与数据库交互的情况下构造查询,之后再进行执行,有助于实现更高效的查询策略。 8. ** Criteria API的Projections**:用于获取聚合结果,如计数、求和、平均值等。...

    hibernate5.1.10 依赖jar包

    通过Criteria、DetachedCriteria和Expression对象,可以构建复杂的查询条件,无需编写SQL。 **6. HQL:Hibernate查询语言** HQL是Hibernate特有的面向对象的查询语言,类似于SQL,但操作的是对象而非表。它可以执行...

    hibernate-distribution中文帮助手册

    8. **Criteria与DetachedCriteria**:Criteria用于在线程内的查询,而DetachedCriteria则允许在不直接与数据库交互的情况下构建查询条件。 9. **Caching**:Hibernate支持二级缓存,可以使用第三方缓存如 EhCache ...

    hibernate程序高手秘笈-英文版

    4. **Criteria和DetachedCriteria**:学习使用Criteria API动态构建查询条件,以及DetachedCriteria用于离线查询,了解其在复杂查询中的应用。 5. **缓存机制**:理解Hibernate的缓存层次结构,包括第一级缓存和第...

    hibernate3.2_src官方源码

    通过`Criteria`和`DetachedCriteria`接口,可以在运行时构造查询条件。 4. **HQL(Hibernate Query Language)**:Hibernate特有的查询语言,类似于SQL,但面向对象。源码中的`org.hibernate.hql`包包含了HQL解析器...

    传智播客_hibernate

    3. **Criteria查询**: 提供一种面向对象的查询方式,通过Criteria和DetachedCriteria构建查询条件。 4. ** Criteria API的Join操作**: 支持多表查询,包括内连接(inner join)、左连接(left join)等。 5. **...

Global site tag (gtag.js) - Google Analytics