Hibernate框架很好用,初识的感觉就是,在你配置好的情况下,它可以自动帮你封装实体,也可以自动在你指定的实体内封装另一个实体
下面就来稍微研究一下(以下的字段都必须有set/get方法)
首先看一下我的主要实体类Employee Employee与Department的关系为many-to-one
Employee的hbm.xml配置文件如下-----
第一行:name代表的是上图中那个department字段,class不言而喻
第三行:column指的是Employee表中对应的列名
我们拿Department类来写,Employee对应一个Department,而Department对应多个Employee
Department实体类,所以要写Set<Employee> empSet字段
Department.hbm.xml
第二行:empSet对应是此实体的字段值
第五行:对应的是外键的列名
第七行:对应的是多方的实体
-----------------------------------------------------------
一对一关系Employee和Check_Card(员工卡)
Check_Card.java
在Employee.hbm.xml添加如下
而在Check_Card.hbm.xml添加如下------------多对一是一对一的特例
------------------------------------------------------------------------------------------
自连接,接下来拿Department实体做例子,因为部门有若干个子部门,和一个上级部门-----Department实体类在上面
下面就来看看它的hbm.xml文件,代码跟之前的一样。这就不多说了。。
接下来,就说一说上面的 fetch和lazy 上面写的都是默认值
fetch抓取策略分为 select和join
join-----在你得到一个实体后,与之相关的数据会一起通通封装进去
lazy-----只有fetch为select的情况下,才可以使用lazy,在你用不到相关数据时,暂时不会给你抓取