Hibernate 中的 DetachedCriteria查询(所有使用到的类属性必须在映射文件中存在)
来源:互联网 发布:nginx 配置文件恢复 编辑:程序博客网 时间:2024/05/16 04:42
DetachedCriteria对象为hibernate的离线查询对象(即该对象不是由session创建[由forClass或者forEntityName来创建],查询的动态sql语句在web层即可以生成[即可以脱离session来动态构建sql语句,进行查询])
查找哪一个类:
DetachedCriteria criteria = DetachedCriteria.forClass(Project.class);
判断类属性(表中列,以后直接用列表示)是否等于某个值:
DetachedCriteria.add(Restrictions.eq("user.id", userId));
or查询条件
Criterion leader = Restrictions.eq("leader.id", userId);
Criterion member = Restrictions.eq("members.member.id", userId);
LogicalExpression orExp1 = Restrictions.or(leader, member);
criteria.add(orExp1);
like查询条件
Criterion fullName = Restrictions.like("fullName", findKey);
Criterion shortName = Restrictions.like("shortName", findKey);
Criterion leaderName = Restrictions.like("key", findKey);
LogicalExpression orExp = Restrictions.or( Restrictions.or(fullName, shortName), leaderName);
criteria.add(orExp);
5、查询数据一共有多少条
DetachedCriteria criteria = this.createFindProjectsCriteria(findKey, userId, scope) ;
criteria.setProjection(Projections.rowCount());
List results = getHibernateTemplate().findByCriteria(criteria);
int count = ((Integer) results.get(0)).intValue();
return count;
查询不重复的数据条数(其它同5)
criteria.setProjection(Projections.countDistinct("key"));根据主键key来查
动态关联查询
List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like("name", "Fritz%") )
.setFetchMode("mate", FetchMode.EAGER)
.setFetchMode("kittens", FetchMode.EAGER)
.list();
添加按列排序:
criteria.addOrder(Order.asc(类的属性));
去掉重复项 :
(1)criteria.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
(2)detachedCriteria.setProjection(Projections.distinct(Projections.property(str)));
detachedCriteria.setProjection(Projections.groupProperty(str));
使用自定义的sql语言查询
criteria.add(Restrictions.sqlRestriction(" project_Id="+projectId+" connect by prior id= prev_ver "));
使用自定义的sql返回实体类的集合
criteria.add(Restrictions.sqlRestriction(" project_Id="+projectId+" connect by prior id= prev_ver ")).addxxx();
Query query =session.createSQLQuery(sql).addEntity(Project.class);
query.setString("active", "Y");
query.setLong("leaderId", userId);
条件拼装完成后,边可以进行查询了 :
getHibernateTemplate().findByCriteria
查找哪一个类:
DetachedCriteria criteria = DetachedCriteria.forClass(Project.class);
判断类属性(表中列,以后直接用列表示)是否等于某个值:
DetachedCriteria.add(Restrictions.eq("user.id", userId));
or查询条件
Criterion leader = Restrictions.eq("leader.id", userId);
Criterion member = Restrictions.eq("members.member.id", userId);
LogicalExpression orExp1 = Restrictions.or(leader, member);
criteria.add(orExp1);
like查询条件
Criterion fullName = Restrictions.like("fullName", findKey);
Criterion shortName = Restrictions.like("shortName", findKey);
Criterion leaderName = Restrictions.like("key", findKey);
LogicalExpression orExp = Restrictions.or( Restrictions.or(fullName, shortName), leaderName);
criteria.add(orExp);
5、查询数据一共有多少条
DetachedCriteria criteria = this.createFindProjectsCriteria(findKey, userId, scope) ;
criteria.setProjection(Projections.rowCount());
List results = getHibernateTemplate().findByCriteria(criteria);
int count = ((Integer) results.get(0)).intValue();
return count;
查询不重复的数据条数(其它同5)
criteria.setProjection(Projections.countDistinct("key"));根据主键key来查
动态关联查询
List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like("name", "Fritz%") )
.setFetchMode("mate", FetchMode.EAGER)
.setFetchMode("kittens", FetchMode.EAGER)
.list();
添加按列排序:
criteria.addOrder(Order.asc(类的属性));
去掉重复项 :
(1)criteria.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
(2)detachedCriteria.setProjection(Projections.distinct(Projections.property(str)));
detachedCriteria.setProjection(Projections.groupProperty(str));
使用自定义的sql语言查询
criteria.add(Restrictions.sqlRestriction(" project_Id="+projectId+" connect by prior id= prev_ver "));
使用自定义的sql返回实体类的集合
criteria.add(Restrictions.sqlRestriction(" project_Id="+projectId+" connect by prior id= prev_ver ")).addxxx();
Query query =session.createSQLQuery(sql).addEntity(Project.class);
query.setString("active", "Y");
query.setLong("leaderId", userId);
条件拼装完成后,边可以进行查询了 :
getHibernateTemplate().findByCriteria
0 0
- Hibernate 中的 DetachedCriteria查询(所有使用到的类属性必须在映射文件中存在)
- hibernate DetachedCriteria中的查询语句的使用
- Hibernate中DetachedCriteria的使用
- Hibernate中DetachedCriteria的使用
- Hibernate中DetachedCriteria的使用
- Hibernate中DetachedCriteria的使用
- Hibernate中DetachedCriteria的使用
- Hibernate中DetachedCriteria的使用
- hibernate中DetachedCriteria查询的用法
- 灵活使用Hibernate的查询对象DetachedCriteria
- 灵活使用Hibernate的查询对象DetachedCriteria
- 灵活使用Hibernate的查询对象DetachedCriteria
- [转]Hibernate中DetachedCriteria的使用
- Hibernate中DetachedCriteria的使用 (转载)
- Hibernate-类映射文件中常用属性的了解
- hibernate映射中inverse属性的使用
- hibernate:映射文件的属性名必须和pojo类的属性名以及数据库字段名一一对应
- hibernate中的实体类和实体关系映射文件必须遵循的原则
- 交友须谨慎
- C++重载 箭头运算符
- 参考文献标准格式
- WIFI那些事开博
- 机器学习常见算法分类汇总
- Hibernate 中的 DetachedCriteria查询(所有使用到的类属性必须在映射文件中存在)
- 国外程序员整理的机器学习资源大全
- frgment 加载数据
- HDFS 简单介绍
- 理解:深度学习 vs 机器学习 vs 模式识别
- Vim简明教程【CoolShell】
- CentOS 7 设置网络
- float 格式化到TCHAR 数组
- 错误总结