hibernate高級映射

hibernate5個核心接口
Configration:负责读取主配置文件和映射描述文件
SessionFactory:创建session对象
Session:负责add、delete、save、查询等操作。
Query:负责执行HQL查询语句
Transaction:负责事务控制
=============================================================
hibernate对象的三种状态:
1临时状态:刚new出来的对象和session.delete()方法后
2持久状态:调用session的load/get/save/update方法后,该对象受session管理
3脱管状态:session.colose()/session.clear()方法后
===============================================================================


高級映射部份:

----------聯合主鍵映射/組件映射-------------

---------------一對一----------------
1.首先判斷數據表的設計類型 是主鍵<-->主鍵
     主鍵<-->外鍵
  主鍵<-->主鍵    雙方都使用<one-to-one>
  主鍵<-->外鍵  主鍵表-->外鍵表 使用<one-to-one>
 外鍵表-->主鍵表 使用<many-to-one>
2.在判斷關係是單向還是雙向
3.如果是單向,再判斷是A-->B還是B-->A




----------------一對多/多對一----------------
1.兩個表設計時採用主外鍵關係
2.在主鍵表建立一對多關係(主鍵表--->外鍵表)
    a.持久類中添加Set集合屬性
    b.在映射描述文件中採用<set><one-to-many/></set>
3.在外鍵表建立多對一關係(外鍵表--->主鍵表)
    a.在持久類中添加對方類型的屬性
    b.在映射文件中使用<many-to-one/>
    c.注意:在映射描述文件中刪除order_id及其定義


------------------多對多-------------------------
多對多在數據庫中需要對應三張表.
d_category--->d_category_product<---d_product
    a.在持久類中添加集合類型的屬性,用於多對多關聯
    b.在映射描述文件中使用如下格式
      <set name="集合屬性名" table="關係表">
<key column="與當前類型對應的關係表字段"></key>
<many-to-many class="集合的元素類型" column="與集合元素類型對應的關係表字段">
      </set>


-------------------繼承關係映射-----------------
1.<joined-subclass>實現繼承,如d_book和d_product。
數據表在設計時父類有一張表,每個子類各有一張表
d_product表,d_book表,d_car表
條件1:A和B之間滿足1:1
條件2:A和B之間符合繼承思想


2.<subclass>實現繼承(瞭解)
數據表設計時,,每個子類都存儲在一張表中
d_product表
d_product表共通字段,d_book字段,d_car字段,......


3.<union-subclass>實現繼承(瞭解)
數據表設計時,每個子類都有各自的表,
d_book表
   d_product字段,d_book字段
d_car表
   d_product字段,d_car字段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值