zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    Android与js交互实例
    动态规划-最长公共子序列
    android调用js
    比特币不是虚拟货币,这是一个真实世界----李笑来
    Linux进程同步之POSIX信号量
    编程至死第0天
    JMX操作ActiveMQ(2)
    Oracle层次查询和with函数的使用
    boost::asio async_write也不能保证一次发完所有数据 一
    解决Eclipse一直loading workbench无法启动的问题
  • 原文地址:https://www.cnblogs.com/daxiong225/p/4690380.html
Copyright © 2011-2022 走看看