Hibernate_集合映射、关联关系、Session方法总结
    
一、集合映射。
  类型  Java中声明   映射元素
  ---------------------------------
  Set   Set       <set>
  List  List      <list>
  Map   Map       <map>
  数组  ...[]     <array>
  Bag   List/Collection <bag>
  ---------------
  要说明的信息有:
  1,只要有集合,就一定有集合表。
  2,集合外键。
  3,集合元素。
  4,对于List和数组,还需要多一个索引列。
  5,对于Map,还需要多一个key列。
  值类型的集合。
  实体类型的集合。
二、关联关系映射(要说明的信息有什么)。
  一对多:
    1,属性名
    2,集合外键
    3,关联的实体类型(one-to-many  class="")
  多对一:
    1,属性名
    2,外键列名
    3,关联的实体类型
  多对多:
    1,属性名
    2,中间表
    3,集合外键:引用当前对象表主键值的那外外键
    4,关联的实体类型
    5,另一个外键:引用关联实体表主键的那个外键。
  一些重要的属性:
    inverse:
      是否放弃维护关联关系。
      默认是false,表示可以维护。
      实体类型的集合映射中可以使用(一对多、多对多)。
    sort:
      在内存中排序(类似于TreeSet)
      默认为unsorted,即不排序。
      在无序的集合映射中可以使用。
    order-by:
      使用数据库排序,即在SQL中增加orderby子句(类似于LinkedHashSet)。
      默认不排序,这里指定的是sql语句中的orderby子句。
      在无序的集合映射中可以使用。
    cascade:
      级联。
      默认为none。
      在所有的关联关系映射中可以使用。
      常用的值:all, save-update, delete, none.
三、Session中的方法。
  对象的状态:
        Session中  数库中 
    -----------------------
    临时   无      无
    持久化  有      最终会有
    游离   无      有
    删除   调用了delete()方法后
  1,操作实体对象的
    save()
    update()
    saveOrUpdate()
    delete()
    
  2,操作缓存的
    clear() 清空Session缓存,不会执行sql语句。
    evict()
    flush() 马上执行sql语句,不会清楚Session缓存。
  3,查询实体对象的
    get()
    load()
    createQuery()
    createCriteria()