hibernate 常识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate 常识相关的知识,希望对你有一定的参考价值。

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

    技术分享图片

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

  3. 如果持久化类里有一个属性,数据库中表没有对应字段,可以用*.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→ 《Hibernate程序开发》教材大纲

hibernate问题

Spring和Hibernate的注解整合 hibernate3和hibernate4/5的区别

hibernate.merge()方法怎么用

hibernate 异常 怎么解决

Hibernate之Hibernate环境配置