08 集合對映 set

2021-08-20 15:58:51 字數 1995 閱讀 1316

實際上,set這種集合對映我們在前面已經學習關聯關係對映時已經用過了,實體類(實體類都在在資料庫中有對應的表)中有一對多或者多對多的關係,並且我們可以通過某一側訪問到另一側,就是通過在類中設定 set集合並配置set對映來實現的。

在hibernate配置中有兩種資料型別,一種是值型別,另一種是實體型別,實體型別都有對映檔案,而值型別則沒有,我們前面使用的就是實體型別,如下就是實體型別:

public

class

order

implements

serializable

而對於的對映檔案則為(訂單和訂單項的關係為一對多關係)

name="orderlines"

cascade="all"

inverse="true">

column="order_id"/>

class="orderline"/>

set>

我們這裡要討論的則是另一種值型別,值型別配置稍微有些不一樣。

使用者表items_set,使用者表中儲存使用者的id與姓名

create

table items_set(

id number(10) primary

key,

name varchar2(20)

);

表images_set,用以儲存路徑,該表中使用items_id作為外來鍵對應使用者表中的主鍵,並使用items_id和filename作為聯合主鍵。

create

table images_set(

filename varchar2(20),

items_id number(10) references items_set(id),

primary

key(items_id, filename)

);

itemsset類,該類中有儲存image的乙個set集合,而儲存的型別為string,此為值型別,但是image在資料庫中有表的。

public

class

itemsset

配置 itemssetx.hbm.xml 對映檔案,並將對映檔案加入到核心配置檔案hibernate.cfg.xml中

設定父表:name=」itemsset」 table=」items_set」

設定子表:name=」images」 table=」images_set」,這其中表示了在itemsset類中,有images屬性getter和setter方法。

set:配置集合對映關係,指定屬性以及表名。如果不加級聯(cascade),則缺省級聯為查詢級聯,增刪改不級聯,為級聯新增」all」值,則級聯所有操作。

key標籤:指示子表的外來鍵

element標籤:配置值型別的集合對映,column指定子表中的字段

<?xml version="1.0" encoding="utf-8"?>

package="com.li.set.pojo">

name="itemsset"

table="items_set">

name="id"

type="integer"

column="id">

class="assigned">

generator>

id>

name="name"

column="name"

type="string"/>

name="images"

table="images_set"

cascade="all"

inverse="false">

column="items_id"/>

column="filename"

type="string"

not-null="true"/>

set>

class>

5 03 集合框架 set集合

一 set集合概述 乙個不包含重複元素的 collection。更確切地講,set 不包含滿足e1.equals e2 的元素對e1和e2,並且最多包含乙個 null 元素。正如其名稱所暗示的,此介面模仿了數學上的 set 抽象。在所有構造方法以及 add equals 和 hashcode 方法的...

集合4 集合 Collection介面 Set介面

儲存無序的 不可重複的資料 三種實現類 注 1.set介面中沒有額外定義新的方法,使用的都是collection中宣告過的方法 2.向set中新增的資料,其所在類一定要重寫hashcode 和equals 且重寫的hashcode 和equals 盡可能保持一致 相等的物件具有相等的雜湊碼 以has...

Python基礎學習08 集合

是乙個無序的不重複的元素序列。建立空集合 set1 set print set1的資料型別為 type set1 建立存在資料的集合 set2 print set2的資料型別為 type set2 print set2 set2 建立多資料的集合 set3 集合中存在3個 1 print set3的...