• Hibernate 总结一


    Session

      当批量处理数据过大时,session这个集合会造成内存溢出,需要通过flush把session中的数据刷出到数据库中,让后再clear,清空缓存

    一、集合映射。
    类型 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()

  • 相关阅读:
    [MacOS]Sublime text3 安装(一)
    [RHEL8]开启BBR
    PAT Advanced 1136 A Delayed Palindrome (20分)
    PAT Advanced 1144 The Missing Number (20分)
    PAT Advanced 1041 Be Unique (20分)
    PAT Advanced 1025 PAT Ranking (25分)
    PAT Advanced 1022 Digital Library (30分)
    PAT Advanced 1019 General Palindromic Number (20分)
    PAT Advanced 1011 World Cup Betting (20分)
    PAT Advanced 1102 Invert a Binary Tree (25分)
  • 原文地址:https://www.cnblogs.com/daxiong225/p/4690380.html
Copyright © 2020-2023  润新知