//在Action中 拼查询条件
public ActionForward Action (....)
{
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
String name = request.getParameter("name");
//拼查询条件
if (name != null)
dc.add(Restrictions.eq("name", name));
int age = request.getParameter("age");
if(age > 0)
dc.add(Restrictions.eq("age", age));
List users = query(dc);
}
//在DAO层 查询
static List query(DetachedCriteria dc)
{
Session s = HibernateUtil.getSession();
Criteria c = dc.getExecutableCriteria(s); //这时须要一个session
List rs = c.list();
s.close();
return rs;
}
分享到:
相关推荐
DetachedCriteria 是 Hibernate 中的一种离线查询对象,它可以在不依赖 Session 的情况下生成动态 SQL 语句并进行查询。下面是 DetachedCriteria 查询的详细知识点: 创建 DetachedCriteria 对象 DetachedCriteria...
而 DetachedCriteria 则是离线的,创建时无需 Session,可以使用 `DetachedCriteria.forClass(Class)` 或 `DetachedCriteria.forEntityName(String)` 方法来创建实例。 DetachedCriteria 提供了两个静态方法来...
首先,DetachedCriteria主要用于离线查询,即不在当前Session内执行的查询。它的主要优势在于可以预编译查询条件,延迟到实际需要时再与Session交互执行,这样可以提高性能并避免Session管理的复杂性。然而,表连接...
Spring框架提供了对离线查询的支持,非常简洁地使用DetachedCriteria。Spring框架提供了getHibernateTemplate().findByCriteria(detachedCriteria)方法,可以很方便地根据DetachedCriteria返回查询结果。 ...
而 `DetachedCriteria` 是离线的,创建时不依赖于任何 `Session`。 - **使用场景**:`Criteria` 适用于即时查询,而 `DetachedCriteria` 更适合跨层传递查询条件。 - **灵活性**:`DetachedCriteria` 提供了更大的...
Hibernate提供了两种主要的查询方式:离线查询(Criteria API)和HQL(Hibernate Query Language)语句查询。这两种查询方法各有特点,适用于不同的场景,使得开发者可以根据实际需求灵活选择。 1. Hibernate ...
DetachedCriteria 是离线的 Criteria,它可以在 Session 之外创建,提供了 forClass(Class) 或 forEntityName(Name) 两个静态方法来创建 DetachedCriteria 实例。例如,DetachedCriteria detachedCriteria = ...
而 DetachedCriteria 是离线的,创建时无需 Session。DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName(Name) 进行 DetachedCriteria 实例的创建。Spring 的框架提供了 getHibernateTemplate...
2. **DetachedCriteria**:这是一个离线查询对象,可以在不与Session交互的情况下构建查询条件,然后在需要的时候再与Session结合执行,这对于延迟加载和构建复杂的查询非常有用。 3. **Criteria查询的构建**:包括...
而 DetachedCriteria 是离线的,创建时无需 Session。DetachedCriteria 提供了两个静态方法 forClass(Class) 或 forEntityName(Name) 进行 DetachedCriteria 实例的创建。Spring 的框架提供了 getHibernateTemplate...
Criteria 是在线的,需要通过 Hibernate Session 创建,而 DetachedCriteria 是离线的,可以在不需要 Session 的情况下创建。DetachedCriteria 提供了静态方法 forClass(Class) 或 forEntityName(Name) 来创建实例。...
4. **Criteria和DetachedCriteria**:学习使用Criteria API动态构建查询条件,以及DetachedCriteria用于离线查询,了解其在复杂查询中的应用。 5. **缓存机制**:理解Hibernate的缓存层次结构,包括第一级缓存和第...
Criteria用于在线查询,直接与Hibernate Session关联,而DetachedCriteria则可在不依赖Session的情况下创建,适用于离线或延迟执行的查询。DetachedCriteria可以通过`forClass(Class)`或`forEntityName(String)`静态...
它包括DetachedCriteria用于离线查询,Criteria用于实时查询,以及Order、Projection等辅助类。 8. Persistent类和Proxy:Hibernate通过 Persistent 和 Proxy 类来处理对象的状态。Persistent 表示对象已保存在...
Criteria API提供了一种更灵活的查询方式,通过DetachedCriteria实现离线查询,通过Criteria构建动态查询,结合Projection和Criterion进行结果集处理和条件限制。 8. Hibernate缓存: Hibernate支持二级缓存,...
- **灵活性**:两者均提供了高度的灵活性,可以使用`Criterion`和`Projection`来设置查询条件和投影结果,但`DetachedCriteria`的离线特性使其在某些场景下更加灵活。 #### Criterion与Projection详解 - **...
DetachedCriteria用于创建离线查询,方便在不开启Session时构建查询条件。 8. Criteria与HQL的比较: HQL更适合SQL语句的程序员,而Criteria更符合面向对象思维。两者各有优势,选择取决于具体场景。 9. Native ...
- **DetachedCriteria**:为离线创建,不依赖于`Session`。这使得开发者可以在任何地方预定义查询条件,之后再将这些条件应用于`Session`中执行查询,增加了代码的可读性和复用性。`DetachedCriteria`通过`forClass...