传智播客OA项目学习--阶段三(级联操作)
时间:2022-07-22
本文章向大家介绍传智播客OA项目学习--阶段三(级联操作),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、Hibernate
1、级联操作
例子:
<set name="children" cascade="delete">
<key column="parentId"></key>
<one-to-many class="Department"></one-to-many>
</set>
这样在添加(cascade="delete"),在进行删除操作时,会对“children”进行相同的操作。
cascade属性有四种取值:
all:所有操作都执行级联操作;
none:所有操作都不执行级联操作;
save-update:保存和更新时执行级联操作;
delete:删除时执行级联操作;
2、
@Resource //Spring 注入,获取实例
private SessionFactory sessionFactory;
sessionFactory.getCurrentSession().createQuery(//
"FROM Department d WHERE d.parent IS null"//面向对象查询
).list();
1)返回单条记录:get()、load()方法
区别:a、get()方法不采用延迟加载方式;load()方法采用延迟加载的方式
b、使用get()方法查找不存在的记录时会报NullPoint异常;
使用load()方法查找不存在的记录时会报ObjectNotFound异常
疑问:为什么get()方法查找不存在的记录时会报空指针异常?
回答:get()方法执行查询语句,当查找到不存在的记录时就返回空值,当调用对象属性的
get()方法时,由于属性值为空,因此才会报空指针异常
2)返回多条记录:list()方法、iterator()方法
区别:1)list()方法不采用延迟加载方式;iterator()方法采用延迟加载的方式
2)list()方法在执行时有N条记录就执行N条SQL语句;
iterator()方法在执行时会产生"N+1"问题:有N条记录,就会执行N+1条SQL语句。
疑问:为什么iterator()方法在执行时会产生"N+1"问题?
回答:iterator()方法在执行时,首先会查询满足条件的记录的主键列,然后通过主键列再去
执行N条SQL语句
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android 通过代码安装 APK的方法详解
- Android ListView实现无限循环滚动
- ignite:一个漂亮的多用户SS/SSR面板
- FreshRSS:开源免费的RSS阅读器
- 使用snap快速安装RocketChat你的聊天服务器
- CuteOne:一款基于Python3的OneDrive多网盘挂载程序,带会员/同步等功能
- Baidu Sitemap Generator在PHP7无法生成XML的解决方法
- MFC实现的Socket通信
- 128-在线翻译
- C语言CGI编程二 - 编写cmd后门
- android 获取视频第一帧作为缩略图的方法
- Flutter利用注解生成可自定义的路由的实现
- Android实现随意拖动View效果的实例代码
- Kotlin的枚举与异常示例详解
- Android自定义View的使用及其原理知识点总结