zoukankan
html css js c++ java
Hibernate关联查询
关联查询可分为两种:
A) 实体间有定义关联关系的(一对多,多对一等)
对已定义关联关系的,我们可以使用createAlias()来创建属性的别名,然后引用别名进行条件查询,如:
Criteria criteria = session.createCriteria(Parent.class);
criteria.createAlias("children", "c").add(Expression.eq( "c.name" , childName));
这样进行查询时就可得到关联查询后的Parent对象结果集。
要注意的是,如果在createAlias()之后,又使用了setProjection(如查询总记录数),这样得到的查询结果集中,每个对象 并不是Parent类型,而是一个对象数组(Object[]),里边有一个Parent对象和一个Child对象,需要根据object的类名去判断是 哪个对象。
如果还要恢复默认的结果集状态,需调用
criteria.setResultTransformer(Criteria.ROOT_ENTITY);
B) 实体间未定义关联关系的
对未定义关联关系的,我们需要使用Exist子查询来辅助,如:
Criteria criteria = session.createCriteria(Brother.class, "b");
DetachedCriteria sisCri = DetachedCriteria.forClass(Sister.class, "s");
sisCri.add(Property.forName("s.fName").eqProperty("b.fName"));
criteria.add(Subqueries.exists(sisCri.setProjection(Projections.property("s. id "))));
查看全文
相关阅读:
day10 Java学习(开发工具.Eclipse)
day9 Java学习(面向对象Package关键字)
day8 Java学习(面向对象.多态&接口)
day7 Java学习(面向对象.继承)
day5 Java学习(面向对象)
day4 Java学习(数组)
day3 Java学习(循环结构)
day2 Java学习(位运算符)
2019-05-26 java学习日记
2019-05-25 java学习日记
原文地址:https://www.cnblogs.com/cnjava/p/2623759.html
最新文章
Python 网络爬虫 006 (编程) 解决下载(或叫:爬取)到的网页乱码问题
ROS Learning-031 (提高篇-009 A Mobile Base-07) 控制移动平台 --- (操作)人机交互
ROS Learning-030 (提高篇-008 A Mobile Base-06) 控制移动平台 --- (Python)odom导航的例子:移动一个方块路径
ROS Learning-029 (提高篇-007 A Mobile Base-05) 控制移动平台 --- (Python编程)控制虚拟机器人的移动(精确的制定目标位置)
ROS Learning-028 (提高篇-006 A Mobile Base-04) 控制移动平台 --- (Python编程)控制虚拟机器人的移动(不精确的制定目标位置)
ROS Learning-027 (提高篇-005 A Mobile Base-03) 控制移动平台 --- Twist 消息
ROS Learning-026 (提高篇-004 A Mobile Base-02) 控制移动平台 --- “分封制”
ROS Learning-025 (提高篇-003 A Mobile Base-01) 控制移动平台
2019-06-01 Java学习日记之递归练习
2019-05-31 Java学习日记之IO(其他流)&Properties
热门文章
2019-05-30 Java学习日记之IO(字符流)&字符流其他内容&递归
2019-5-29 Java学习日记之IO(字节流)
2019-05-28 Java学习日记之异常&IO(File类)
2019-05-27 Java学习日记之Map集合&模拟斗地主洗牌发牌
2019-05-26 Java学习日记之Set集合
2019-05-25 Java学习日记之List集合
2019-05-24 Java学习日记之Colletion集合
2019-05-23 Java学习日记之正则表达式&常用工具类
day12 Java学习(常见对象SrtingBuffer类)
day11 Java学习(常见对象String类)
Copyright © 2011-2022 走看看