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"不会影响级联操作。

最新文章

  1. c++怎样让函数返回数组
  2. java中Arraylist复制方法
  3. JS-Dom概念
  4. BZOJ 1461: 字符串的匹配
  5. win32 公用对话框
  6. [转]基于overlayfs的硬盘资源隔离工具troot
  7. HTML-003-模拟IDE代码展开收起功能简单示例
  8. Python实现C4.5(信息增益率)
  9. 转XMLHelper
  10. 函数 flst_get_first
  11. SCJP_104——题目分析(5)
  12. 2-4. BCD解密(10)
  13. Ubuntu 重装 mysql
  14. php基础。php与js的不同
  15. 基础拾遗-----mongoDB操作
  16. 自动化服务部署(一):Linux下安装JDK
  17. Navicat永久激活步骤,激活工具,解决注册码无效的问题
  18. Java基础--异常处理
  19. C#连接字符串
  20. Android Studio 将文件打包成APK

热门文章

  1. react 子组件给父组件传值
  2. c/c++排坑(3) -- c/c++中的switch语句
  3. UNIX C XSI_IPC对象、共享内存
  4. Pie POJ 3122 二分搜索
  5. Color the ball 线段树 区间更新但点查询
  6. V - 吉哥系列故事――完美队形I Manacher
  7. 题目3 : Spring Outing 微软2016校园招聘在线笔试第二场
  8. gcc动态链接库so的制作和使用
  9. iOS 基础类解析 - NSData、NSMutableData
  10. Sublime text 神器小记