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;
}
分享到:
相关推荐
在Java的持久化框架Hibernate中,DetachedCriteria是一个强大的查询工具,它允许我们在不与Session交互的情况下构建查询条件。然而,DetachedCriteria在处理复杂的关联查询,尤其是涉及到表连接(JOIN)时,可能存在...
"Hibernate - DetachedCriteria 的完整用法" Hibernate 的 Criteria 和 DetachedCriteria 是两个不同的概念,虽然它们都是用于查询数据的,但它们在创建和使用上有所不同。 首先,Criteria 是在线的,需要通过 ...
**Hibernate 框架及其DetachedCriteria操作详解** Hibernate 是一个强大的Java持久化框架,它极大地简化了数据库操作,使得开发者能够用面向对象的方式处理数据库事务。本篇将深入探讨Hibernate中的...
此外,还利用了`Apache Commons BeanUtils`来进行对象属性的操作,以及`Hibernate`的`DetachedCriteria`进行数据查询。以下是具体的关键技术和工具: - **jxl**:用于读写Excel文件。 - **Apache Commons BeanUtils*...
DetachedCriteria 是 Hibernate 中的一种离线查询对象,它可以在不依赖 Session 的情况下生成动态 SQL 语句并进行查询。下面是 DetachedCriteria 查询的详细知识点: 创建 DetachedCriteria 对象 DetachedCriteria...
`DetachedCriteria` 是 Hibernate 提供的一种灵活且强大的查询机制,它允许你在脱离 Session 的情况下构建复杂的查询标准,这意味着你可以提前构建查询标准,然后在任何地方执行查询,而无需关心当前是否有 Session...
总结,Hibernate提供多种方式查询数据表中的字段,包括HQL、Criteria API和DetachedCriteria,选择合适的方法取决于具体需求。正确理解和使用Hibernate,能够大大提高Java开发中的数据库操作效率。
2. QBC查询:Query By Criteria API允许基于Java对象属性进行查询,通过Criteria、DetachedCriteria构建查询条件。 3. SQL查询:对于更复杂的查询需求,可以使用Session的createSQLQuery()方法,直接编写SQL语句。 ...
Criteria用于在线查询,直接与Hibernate Session关联,而DetachedCriteria则可在不依赖Session的情况下创建,适用于离线或延迟执行的查询。DetachedCriteria可以通过`forClass(Class)`或`forEntityName(String)`静态...
5. ** Criteria和DetachedCriteria**:详细阐述Criteria查询的使用,包括条件查询、排序、分页,以及DetachedCriteria的概念,用于创建可复用的查询模板。 6. **事务和缓存**:讨论Hibernate的事务管理,包括编程式...
11. **Criteria API的子集:DetachedCriteria**:DetachedCriteria可以在不直接与数据库交互的情况下构建查询条件,然后在需要的时候再执行,有利于提高性能。 12. **一对多(One-to-Many)、多对一(Many-to-One)...
8. ** Criteria API的DetachedCriteria**:DetachedCriteria允许在不打开Session的情况下构建查询,之后在需要时再与Session结合执行,适合于分页查询和延迟加载。 9. **缓存机制**:Hibernate提供了第一级缓存...
5. Criteria API和DetachedCriteria:进一步深入,探讨如何使用Criteria API执行复杂的查询,并介绍DetachedCriteria,用于在不同会话间构建和执行查询。 6. Native SQL:当需要充分利用数据库特定特性时,可以使用...
7. **Criteria API与DetachedCriteria**:Criteria API用于构建动态查询,DetachedCriteria则允许在不接触SessionFactory的情况下构造查询,适用于复杂的查询场景。 8. **集合映射**:如何处理一对多、多对一、多对...
7. **Criteria API的DetachedCriteria**:允许在不与数据库交互的情况下构造查询,之后再进行执行,有助于实现更高效的查询策略。 8. ** Criteria API的Projections**:用于获取聚合结果,如计数、求和、平均值等。...
通过Criteria、DetachedCriteria和Expression对象,可以构建复杂的查询条件,无需编写SQL。 **6. HQL:Hibernate查询语言** HQL是Hibernate特有的面向对象的查询语言,类似于SQL,但操作的是对象而非表。它可以执行...
8. **Criteria与DetachedCriteria**:Criteria用于在线程内的查询,而DetachedCriteria则允许在不直接与数据库交互的情况下构建查询条件。 9. **Caching**:Hibernate支持二级缓存,可以使用第三方缓存如 EhCache ...
4. **Criteria和DetachedCriteria**:学习使用Criteria API动态构建查询条件,以及DetachedCriteria用于离线查询,了解其在复杂查询中的应用。 5. **缓存机制**:理解Hibernate的缓存层次结构,包括第一级缓存和第...
通过`Criteria`和`DetachedCriteria`接口,可以在运行时构造查询条件。 4. **HQL(Hibernate Query Language)**:Hibernate特有的查询语言,类似于SQL,但面向对象。源码中的`org.hibernate.hql`包包含了HQL解析器...
3. **Criteria查询**: 提供一种面向对象的查询方式,通过Criteria和DetachedCriteria构建查询条件。 4. ** Criteria API的Join操作**: 支持多表查询,包括内连接(inner join)、左连接(left join)等。 5. **...