public int getCount(long user, long project, long type, String simNumber,
String callBarring, String puk, String local) {
Criteria criteria = session.createCriteria(Sim.class);
if (user != 0) {
criteria.add(Restrictions.eq("user.id", user));
}
if (project != 0) {
Restrictions.eq("project.id", project);
}
if (type != 0) {
criteria.add(Restrictions.eq("type.id", type));
}
if (!"".equals(simNumber) && simNumber != null) {
criteria.add(Restrictions.like("simNumber", "%" + simNumber + "%"));
}
if (!"".equals(callBarring) && callBarring != null) {
criteria.add(Restrictions.eq("callBarring", callBarring));
}
if (!"".equals(puk) && puk != null) {
criteria.add(Restrictions.like("puk", "%" + puk + "%"));
}
if (!"".equals(local) && local != null) {
criteria.createCriteria("user").add(Restrictions.eq("local", local));
}
criteria.setProjection(Projections.rowCount());
return (Integer) criteria.uniqueResult();
}
今天发现的:hibernate里的 criteria.add(Restrictions.eq("*", *));
是有选择的,我的Book对象里的user(对象).id type(对象).id 可以,id是long型。
criteria.add(Restrictions.eq("type.id", type));
但是,遇到String类型的local就不行了。只能
criteria.createCriteria("user").add(Restrictions.eq("local", local));
分享到:
相关推荐
在这个"struts2 hibernate 实现无限级联 树形分类"项目中,主要目标是创建一个能够展示无限级联的树形分类结构。这种结构通常用于组织层次化的数据,如产品类别、部门结构或者权限角色等。无限级联意味着这个树可以...
本文将主要探讨通过创建结果集接口的方式来实现多表关联查询的方法,而不是依赖Hibernate的级联查询。 首先,我们要了解Spring Data JPA的核心思想是通过提供简单的接口方法定义来执行数据库操作,而不需要编写SQL...
Criteria查询允许开发者根据运行时的条件动态构建查询,更加灵活。 七、 Criteria与HQL的比较 Criteria API和HQL各有优势,Criteria适合于动态、复杂的查询,而HQL则更适合于静态、复杂的查询。开发者可以根据具体...
3. 将查询结果转换为树形结构,便于前端渲染成级联下拉菜单。 在Java中,我们可以使用`Map, List<Category>>`这样的数据结构来存储树形结构,其中`Integer`是菜单ID,`List<Category>`是该菜单的子菜单列表。 前端...
Hibernate的级联操作允许在一个对象的操作中自动处理相关对象,如CascadeType.ALL表示所有操作都会影响关联对象。加载策略包括懒加载(Lazy Loading)和急加载(Eager Loading),用于控制关联对象何时从数据库中...
7. ** Criteria API**:除了HQL,Hibernate还提供了Criteria API,这是一种更动态的查询方式,可以在运行时构建查询条件。 8. **级联操作**:通过在实体类的属性上设置级联注解,可以控制一个对象的保存、删除等...
7. **级联操作与缓存**: Hibernate支持级联操作,比如当删除一个父对象时,可以同时删除与其关联的子对象。此外,Hibernate内置了第一级缓存(Session缓存)和第二级缓存(可配置的缓存),提高性能。 8. **事务...
此外,Hibernate提供了 Criteria API 和 CriteriaBuilder API 进行复杂的查询,如分页、排序、条件组合等。 关联关系在查询中尤为重要,例如,可以通过fetch方式进行懒加载或立即加载关联对象。懒加载意味着关联的...
6. ** Criteria API**: 除了HQL,Hibernate还提供了Criteria API,这是一种更动态的查询方式,可以在运行时构建查询条件。 7. **缓存机制**: Hibernate集成了二级缓存,可以提高数据访问效率。一级缓存是Session...
Hibernate提供了Criteria API,可以在代码中创建查询条件,进行复杂的查询操作,包括条件查询、范围查询、模糊查询等。 ###Mybatis概述 Mybatis是一个持久层框架,它提供对象映射文件,将SQL语句和Java对象映射在...
相比HQL,Criteria查询更具有灵活性,可以根据运行时的条件动态构造查询。 7. **事务处理**:Hibernate支持JTA(Java Transaction API)和JDBC事务,提供了事务的开始、提交、回滚等操作,确保数据的一致性和完整性...
9. **Cascading与Fetch类型**:Hibernate支持级联操作,例如级联保存、更新和删除,以及懒加载和立即加载策略,以优化性能。 10. **缓存机制**:Hibernate提供了一级缓存(Session缓存)和二级缓存(可选),能够...
在联表查询时,可以通过这些注解实现数据的级联加载或延迟加载。 7. **一对多(Many-to-Many)关联** 对于多对多关系,Hibernate通常会创建一个中间表来存储两个实体的关联。`@ManyToMany`注解用于定义这种关系,...
- **Criteria API**: 提供动态查询,无需预先编写SQL,可构建复杂的查询条件。 - **HQL(Hibernate Query Language)**: Hibernate特有的面向对象的查询语言,类似于SQL,但操作对象而非表。 4. **实体管理** - ...
5. **Criteria查询**:除了传统的SQL查询,Hibernate提供了一种面向对象的查询方式——Criteria API,可以动态构建查询条件,避免硬编码SQL。 6. **HQL(Hibernate Query Language)**:类似SQL,但面向对象,用于...
包括基本查询、条件查询、分页查询、排序和聚合函数。 6. **Cascading与Invalidation**:讨论实体之间的级联操作(如级联保存、级联删除)和缓存的无效化策略。 7. **Transaction管理**:深入理解Hibernate的事务...
1. **HQL(Hibernate Query Language)**:类似于SQL,但面向对象,支持条件查询、分页、连接查询和嵌套查询。 2. **QBC(Query By Criteria)**:基于对象的查询,通过Criteria API构建查询条件。 3. **QBE(Query ...
5. **查询语言(HQL)**:Hibernate Query Language是面向对象的查询语言,类似于SQL,但操作的是对象和实体,支持复杂的查询条件和聚合函数。 6. **Criteria 查询**:另一种查询方式,提供动态构建查询的能力,更...
Criteria API提供了一种动态构建查询的方式,无需编写SQL,可以根据条件对象动态生成查询,具有更好的可读性和灵活性。 6. **HQL(Hibernate Query Language)** HQL是Hibernate特有的面向对象的查询语言,类似于...
文档会展示如何编写HQL查询,包括基本查询、条件查询、分页查询、子查询等。 4. **Criteria API**:提供了一种动态构建查询的方式,无需直接写HQL或SQL,通过构建Criteria对象来实现查询,更加灵活且易于维护。 5....