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杂乱总结的更多相关文章

  1. 初学hibernate之缓存

    一.1.Session级别缓存属于一级缓存,持久化对象保存在Session一级缓存中(一级缓存引用持久化对象地址),只要session不关闭,一级缓存就存在,缓存中对象也不会被回收: Session会 ...

  2. 初学Hibernate持久化

    hibernate三种持久化对象状态:(持久化对象:Persistent Object=POJO + hbm映射) 1.瞬时状态(临时状态或自由态):PO对象刚创建(即new)开始进入瞬时状态,此时对 ...

  3. 初学Hibernate主键生成策略

    具有业务含义的主键叫自然主键:随机生成,不具备业务含义的字段作为主键,叫代理主键. 在表与POJO类关系映射文件XXX.hbm.xml中,可通过配置id元素下generator节点的class属性指定 ...

  4. 初学Hibernate

    Hibernate 是完全ORM的,只需要对 对象 进行操作,生成底层SQL语句 优势:1.可以简化开发 2.性能好(原生的Hibernate性能很差,要使用它,需要进行优化),优化方式:一级缓存.二 ...

  5. 初学hibernate的心得体会

    在初步学习了hibernate之后,使我明白了hibernate是一个怎样的软件.hibernate是一个比较独立的框架,它不需要太多其他软件的支持.hibernate是一个开放源代码的关系映射框架, ...

  6. 初学Hibernate之Query扩展

    1.hql参数化查询,不明确值类型的用setParameter方法:明确查询结果为一条记录的用uniqueResult方法查询 注意,参数化查询中方法setString 或 setParameter如 ...

  7. 初学struts2杂乱笔记

    1.在web.xml文件里定义struts2里的一个过滤类org.apache.struts2.dispatcher.FilterDispatcher 2.在src目录下创建struts.xml文件, ...

  8. Hibernate简易原生DAO的实现

    写在最前: 初学Hibernate,在尝试把JDBC项目移植到Hibernate的过程中,碰到了不少的麻烦,最让人心烦意乱的自然是SQL语句改动造成的代码混乱.其实不难,网上的解决方案有很多, 不过. ...

  9. Hibernate 中出现 users is not mapped 问题 (转)

    今天晚上自己试着用Hibernate去搭建一个Web工程,然后去实现一个简单的登录.         通过Hibernate 做查询操作的时候总是报出这样的错:                    ...

随机推荐

  1. Jenkins+Ant+Jmeter自动化集成测试实例

    通过学习Jmeter自动化测试,接触到了Ant命令和其构建文件build.xml文件的编写,与此同时,通过将测试项目集成在jenkins上,进一步学习了jenkins的一些环境配置知识.以下是自己的初 ...

  2. 水图(牛客练习赛(DFS搜索))

    题意: 小w不会离散数学,所以她van的图论游戏是送分的 小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度小w现在在点x上她想知道从点x出发经过每个点至少一次,最少需要走 ...

  3. python第十二周:MySql

    MySql数据库 MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司.MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不 ...

  4. pyhton 网络爬取软考题库保存text

    #-*-coding:utf-8-*-#参考文档#https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#find-al ...

  5. oi的小转折

    2018.6.4,衡水中学oier——Yu-shi,真正的走入了外网领域. 从最开始的连scanf都不打取地址,到现在懂了好多以前不敢去看的东西,心态逐渐的成长了.也许有过特别迷茫的时候,也许将来会有 ...

  6. CodeForcesGym 100735H Words from cubes

    Words from cubes Time Limit: Unknown ms Memory Limit: 65536KB This problem will be judged on CodeFor ...

  7. Android DynamicGrid:拖曳交换位置

     Android DynamicGrid:拖曳交换位置 Android DynamicGrid是一个第三方开源项目,DynamicGrid在github上的项目主页是:https://github ...

  8. nyoj 310二分+dinic

    #include<stdio.h> #include<queue> #include<string.h> using namespace std; #define ...

  9. U - Palindrome Manacher

    Andy the smart computer science student was attending an algorithms class when the professor asked t ...

  10. OpenCV+iOS开发使用文档

      一.      前言     OpenCV是开源的跨平台的计算机视觉库,实现了图像处理.计算机视觉和机器学习的很多通用算法. 对于移动设备没有快速输入的键盘,大的屏幕,其优势在于图像和声音,因此要 ...