(一)集合映射:
類型 Java中聲明 映射元素
------------------------------------------
Set Set<set> <set>
List List<list> <list>
Map Map<map> <map>
數組 ...[] <array>
Bag List/Collection <bag>
---------------
要說明的信息有:
1,只要有集合,就一定有集合表。
2,集合外鍵。
3,集合元素。
4,對於List和數組,還需要多一個索引列。
5,對於Map,還需要多一個key列。
(二)關聯關係映射(要說明的信息有什麼):
一對多:
1,屬性名
2,集合外鍵
3,關聯的實體類型(one-to-many class="")
多對一:
1,屬性名
2,外鍵列名
3,關聯的實體類型
多對多:
1,屬性名
2,中間表
3,集合外鍵:引用當前對象表主鍵值的那外外鍵
4,關聯的實體類型
5,另一個外鍵:引用關聯實體表主鍵的那個外鍵。
一些重要的屬性:
inverse:
是否放棄維護關聯關係;默認是false,表示可以維護;實體類型的集合映射中可以使用(一對多、多對多)。
sort:
在內存中排序(類似於TreeSet);默認爲unsorted,即不排序;在無序的集合映射中可以使用。
order-by:
使用數據庫排序,即在SQL中增加orderby子句(類似於LinkedHashSet);
默認不排序,這裏指定的是sql語句中的orderby子句;在無序的集合映射中可以使用。
cascade:
級聯; 默認爲none; 在所有的關聯關係映射中可以使用。
常用的值:all, save-update, delete, none.
(三)Session中的方法。
對象的狀態:
Session中數庫中
------------------------------------
臨時 無關無關
持久化 有關最終會有關
遊離 無關有關
刪除 調用了delete()方法後
1,操作實體對象的
save()
update()
saveOrUpdate()
delete()
2,操作緩存的
clear()清空Session緩存,不會執行sql語句。
evict()
flush()馬上執行sql語句,不會清楚Session緩存。
3,查詢實體對象的
get()
load() 懶加載
createQuery()
createCriteria()