码迷,mamicode.com
首页 > Web开发 > 详细

hibernate 常识

时间:2018-01-03 11:46:59      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:hibernate

  • 应用程序与hibernate是通过持久化类通信:

    技术分享图片

  • hibernate需要访问的属性一定要在*.hbm.xml中定义,不一定在持久化类中定义,但持久化类一定要提供该属性的set和get方法。

  • 如果持久化类里有一个属性,数据库中表没有对应字段,可以用*.hbm.xml中的formula属性做对应关系,例如下图,持久化类中有totalPrice属性,数据库表里没有

    技术分享图片



  • 4.

    技术分享图片

    5. new出来的对象在堆中,为临时态,被save后,该对象其实是加入了一个session中的map,key为这个对象的OID,其实就是多了一个对它的引用,并且在flush时会将该对象对应的条目保存到数据库,此时为持久态,当session不存在,session对

    该对象的引用没了,而数据库中还有一条记录与之对应,此时该对象处于游离态。

    技术分享图片

    技术分享图片


    6.many-to-one

    技术分享图片

    7. One-to-Many

    技术分享图片

    8.cascade

    技术分享图片

    技术分享图片

    技术分享图片

    9.inverse

    当两个表建立关系时,也就是调用多方的(many)set方法和一方的(one)add方法时,如果双方都配置inverse为false,则多方会生成两条重复的sql语句去update多方的对应条目,

    结果是访问数据库低效,所以一般在one方设置inverse为true,此时意思是由many方法来控制两个表的关联关系,也就是当many方调用set方法时,才生成一条sql语句去update多方的对应条目,

    从而建立关系,而如果one方调用add方法时,不会生成sql语句去update多方的对应条目,也就不会建立起联系。

    10.触发器会引起数据库与session缓存中的数据不一致的问题

    技术分享图片

    技术分享图片

    11.组成关系映射,就是类内部引用了其他类,这个其他类也可以做映射,需要在*.hbm.xml中使用component元素

    技术分享图片

    技术分享图片

    技术分享图片


    技术分享图片

    12.检索策略,分为类检索和关联检索(与那个类关联的类,或者说与那个类对应的条目的关联条目的检索)

    技术分享图片

    技术分享图片


    hibernate 常识

    标签:hibernate

    原文地址:http://blog.51cto.com/2839840/2056887

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!