详解Hibernate
来源:互联网 发布:红牛快消品网络商学院 编辑:程序博客网 时间:2024/06/05 05:07
Hibernate
private String name; private String orderNumber;
} private Double price;
配置Customer.hbm.xml,Order.hbm.xml //建立从订单到客户多对一的关联
| private Customer customer;}
一对多,多对一关系映射,双向关联
这里主要写一些映射文件 多得一段就如上所示了,在这里我就不写出来了。
<class name="...Customer" table="customers">
<id name="id" type="Integer">
<column name="id"></column>
<generator class="increment" />
</id>
<property name="name" type="String>
<column name="name"></column>
</property>
<Set name="orders" type="orders">
<key>
<column name="coutomer_id"></column>
</key>
<one-to-many class="......orders"></one-to-many>
</Set>
</class>
第二个就是多对多关联,这里我们把其拆开成2个一对多的关联,建立有中间表。举个例子来说:学生和课程之间就是明显的多对多的关联
除了关系映射外,下面的内容也还是很重要的,例如:继承映射,一级缓存,二级缓存,快照等等。
下面来说一下,继承映射
举一个例子可以来说明,员工,钟点工, 正式员工。我们通过Employee.hbm.xml来体现
<class name="...Employee" table="e_emp">
<id name="id" type="Integer">
<column name="id" />
<generator class="increment" />
</id>
<property name="name" type="String'>
<column name="name" />
</property>
<joined-subclass name="...HourEmployee" table="h_emp">
<key column="hid">
<property name="rate" column="rate" type="double" />
</joined-subclass>
<joined-subclass name="...SalaryEmployee" table="s_emp">
<key column="sid" />
<property name="salary" column="salary" type="double" />
</joined-subclass>
</class>
操作持久化对象,下面如图表示了流程
说道一级缓存,简单的说,它是在session里面的,当我们操作持久化对象的时候,相应的session中,和快照中就会引用到对象,当与快照中某个属性值不一样时,就会执行更新操作,之后删除游离对象。如下图,可以很好的说明这一点。
二级缓存,也就说sessionFactory的缓存,分为:外置缓存,内置缓存,其中内置缓存是只读的,一般我们放链接数据库信息,映射文件的信息,以及预定义的sql语句,二级缓存(分为四个部分)
1.类级别的缓存,对象实体放在这里(时间区域 T1)
2.集合级别的缓存(存放的永远是查询条件,不能存放实体,实体永远存放在类级别缓存中 时间区域)
3.查询缓存(同样存放的是查询条件 时间区域)
4.更新时间戳缓存(时间区域 T2)
Hibernate就先说到这里,在以后项目中更加详解的说明一下。
- Hibernate详解
- Hibernate详解
- HIBERNATE详解
- HIbernate详解
- hibernate 详解
- hibernate详解
- Hibernate详解
- hibernate详解
- Hibernate详解
- Hibernate详解
- hibernate详解
- 详解Hibernate
- hibernate详解
- 详解Hibernate
- Hibernate详解
- hibernate 详解
- Hibernate详解
- Hibernate详解
- [Android问题解答]如何将Android应用发布到Google Play
- 让八路军投降的飞鸽传书
- mfc窗口位置设置,隐藏功能,给其他程序发送虚拟鼠标键盘消息
- message sent to deallocated instance 的解决办法
- JProfiler远程监控
- 详解Hibernate
- [Android应用代码] Android Fragment简单例子
- 你的身份证号给你显示你的出生日期
- 开发 页面 分页模板
- hanoi问题
- c c++ 交换两个数的值
- Activity的四种launchMode
- 新版iPhone5价高 果粉失望
- 开发 分页调用toof类