初学Hibernate杂乱总结
1.如果在"one"方中(如部门)写有Set属性,但是没有在映射文件中配置,那么,在获取指定部门下的所有员工时,不会报错,但是,Set内的元素个数为0。输出为"[]"。
2.在映射文件里配置<many-to-one />标签时(写在many方),同时也配置了本实体类的该外键属性。
要设置的属性与其他一般的<property ></property>相比 -- 都有name、column属性,
但用class属性代替了type属性,且class属性值是本实体类要引用的另一实体类的类名。
3.在映射文件里配置<set name="属性名"></set>标签时(写在one方),同时也配置了本实体类的该 Set类型的属性。
其下有两个子标签,<key column="many方的外键列名"/> (表示根据员工表中的部门ID得到相应的Set集合)和<one-to-many class="包名.many的一方类名" />
4.在映射文件里,标签的column属性或column标签的name属性,的值,都是指表的列名。
在映射文件里,除了column标签的name属性,大多数标签的name属性值都是指实体类的属性名。
5.类似于foreach的集合元素遍历
for(类型 临时变量名 : 集合或数组)
{
}
6.<set>标签的两个重要属性:
1) inverse属性,用于标识双向关联中的被动方一端。(默认为false)
非反向端用于把内存中的表示保存到数据库中。
例1:在一对多关系中,若其值为true,那么,当通过部门来删除一个员工时( <set>的cascade属性值为all),即department.getEmployees().remove(employee); 执行后员工表中该员工的departmentId 列的值将改为NULL。
若设置其值为false,那么执行后该员工信息将没有任何改变。
2) cascade属性,用于设置双方如何进行级联。可取值:
all:当任何一方的数据发生改变时,另一方也发生改变。
save-update:只在添加数据或修改数据时才对另一方产生影响。
delete:只在删除数据时才对另一方产生影响。
none:互不影响。
例1:若其值为all或delete,当删除某个部门时,员工表中所有属于该部门的员工将全部被删除。
反之若没有级联删除,员工表中所有属于该部门的员工的departmentId列(外键)的值将被修改为NULL。
7.VO --Value Object 指不包含逻辑代码的值对象(如实体类)
8.在one方定义inverse="true"不会影响级联操作。
初学Hibernate杂乱总结的更多相关文章
- 初学hibernate之缓存
一.1.Session级别缓存属于一级缓存,持久化对象保存在Session一级缓存中(一级缓存引用持久化对象地址),只要session不关闭,一级缓存就存在,缓存中对象也不会被回收: Session会 ...
- 初学Hibernate持久化
hibernate三种持久化对象状态:(持久化对象:Persistent Object=POJO + hbm映射) 1.瞬时状态(临时状态或自由态):PO对象刚创建(即new)开始进入瞬时状态,此时对 ...
- 初学Hibernate主键生成策略
具有业务含义的主键叫自然主键:随机生成,不具备业务含义的字段作为主键,叫代理主键. 在表与POJO类关系映射文件XXX.hbm.xml中,可通过配置id元素下generator节点的class属性指定 ...
- 初学Hibernate
Hibernate 是完全ORM的,只需要对 对象 进行操作,生成底层SQL语句 优势:1.可以简化开发 2.性能好(原生的Hibernate性能很差,要使用它,需要进行优化),优化方式:一级缓存.二 ...
- 初学hibernate的心得体会
在初步学习了hibernate之后,使我明白了hibernate是一个怎样的软件.hibernate是一个比较独立的框架,它不需要太多其他软件的支持.hibernate是一个开放源代码的关系映射框架, ...
- 初学Hibernate之Query扩展
1.hql参数化查询,不明确值类型的用setParameter方法:明确查询结果为一条记录的用uniqueResult方法查询 注意,参数化查询中方法setString 或 setParameter如 ...
- 初学struts2杂乱笔记
1.在web.xml文件里定义struts2里的一个过滤类org.apache.struts2.dispatcher.FilterDispatcher 2.在src目录下创建struts.xml文件, ...
- Hibernate简易原生DAO的实现
写在最前: 初学Hibernate,在尝试把JDBC项目移植到Hibernate的过程中,碰到了不少的麻烦,最让人心烦意乱的自然是SQL语句改动造成的代码混乱.其实不难,网上的解决方案有很多, 不过. ...
- Hibernate 中出现 users is not mapped 问题 (转)
今天晚上自己试着用Hibernate去搭建一个Web工程,然后去实现一个简单的登录. 通过Hibernate 做查询操作的时候总是报出这样的错: ...
随机推荐
- B.1 接口
几乎所有要学习的接口都位于 System.Collections.Generic 命名空间.图B-1展示了.NET4.5以前主要接口间的关系,此外还将非泛型的 IEnumerable 作为根接口包括了 ...
- js里的深度克隆
ES6 数组克隆 let arr = [1,2,3,4,5]; let arr1 = [...a]; arr1 = ["a","b","c" ...
- Maven中更改默认JDK版本
只要在settings.xml文件中加上如下标签即可.(我这里是默认的1.7版本) <profiles> <profile> <id>jdk-1.7</id& ...
- python爬虫15 | 害羞,用多线程秒爬那些万恶的妹纸们,纸巾呢?
有时候 只是在人群中多看了一眼 就再也没办法忘掉那些容颜 小帅b在普通的一天 上着普通的网 不小心打开了一个不太普通的网站 https://www.mzitu.com/ 从此进入了不普通的一天 看着不 ...
- Codeforces 918D/917B - MADMAX
传送门:http://codeforces.com/contest/918/problem/D 本题是一个组合游戏问题——DAG上的动态规划问题. 有一张有向无环图(DAG).有两个玩家在这张图上进行 ...
- 1.1 Java程序设计平台
Java并不只是一种语言.在此之前出现的那么多中语言也没有能够引起那么大的轰动.Java是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供诸如安全性.跨操作系统的可移植性以及自动垃 ...
- 简单的SpringBoot环境搭建
开始搭建前请确认您的计算机中的Maven已正确配置 一:使用IDEA创建一个Maven项目,图中第一个指针请选择自己正在使用的JDK版本,指针二请打勾,选中指针三所指向的类型并点击Next 二:填写G ...
- Object Detection: To Be Higher Accuracy and Faster
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51597496 在深度学习中有一类研究热 ...
- How do I drop a MongoDB database, from the command line?
mongo <dbname> --eval "db.dropDatabase()" > use mydb; > db.dropDatabase(); mon ...
- 数字统计(2010年NOIP全国联赛普及组)
题目描述 请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数. 比如给定范围[2, 22],数字 2 在数 2 中出现了 1 次,在数 12 中出现 1 次,在数 20 中出 现 1 次 ...