日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

hibernate映射二

系統(tǒng) 1774 0

<!-- [if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--><!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--><!-- [if gte mso 9]><xml> <o:shapedefaults v:ext="edit" spidmax="1030"/> </xml><![endif]--><!-- [if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> </o:shapelayout></xml><![endif]-->

繼承映射

Animal

Id

name

Sex

Weight

Height

Type

1

小豬

True

100

?

P

2

小鳥

False

?

20

B

Extends.hbm.xml 如下:

< hibernate-mapping package = "com.test.hibernate" >

??? < class name = "Animal" table = "animal" >

?????? < id name = "id" >

?????????? < generator class = "native" ></ generator >

?????? </ id >

??? ??? < property name = "name" ></ property >

?????? < property name = "sex" ></ property >

?????? < discriminator column = "type" type = "string" />

?????? < subclass name = "Pig" discriminator-value = "P" >

?????????? < property name = "weight" ></ property >

?????? </ subclass >

?????? < subclass name = "Bird" discriminator-value = "B" >

?????????? < property name = "height" ></ property >

?????? </ subclass >

??? </ class >

</ hibernate-mapping >

?

Animal animal =(Animal)session.load(animal.Class, 1);

?????? if (animal instanceof Pig) {

?????????? System. out .println( "Pig" );

??????????

?????? }

?

當(dāng)用 Pig 去加載時(shí)是可以的,用父類 Animal 去加載也可以,但是 load 默認(rèn)是 lazy 加載,用 Animal 加載的是 animal 代理類不是真正的 Pig

如果你把 class 中的 lazy=”false”, 則用 Animal 加載的是是真正的 Pig 類(多態(tài))

get() 方法和 sql 查詢支持多態(tài)查詢,返回的是真正的 Pig

Sql 的“ from java.lang.Object ”是查到所有的實(shí)體類對(duì)象;

2 每個(gè)類一張映射表

animal

Id

Name

sex

1

小豬

True

2

小鳥

false

? pig

pid

weight

1

100

bird

bid

height

1

10

Extends.hbm.xml 如下:

< hibernate-mapping package = "com.test.hibernate" >

??? < class name = "Animal" table = "animal" >

?????? < id name = "id" >

?????????? < generator class = "native" ></ generator >

?????? </ id >

?????? < property name = "name" ></ property >

?????? < property name = "sex" ></ property >

?????? <join- subclass name = "Pig" table=”pig” >

?????????? <key column=”pid” />

?????????? < property name = "weight" ></ property >

?????? </ join- subclass >

?????? < join- subclass name = "Bird" table=”bird” >

?????????? <key column=”bid” />

?????????? < property name = "height" ></ property >

?????? </ join- subclass >

??? </ class >

這種對(duì)象模型不變而存儲(chǔ)模型的方法變了;缺點(diǎn)是建表多,效率低;

如果 User 對(duì)象的一些屬性也是其他對(duì)象的屬性(即他們有許多共同的屬性),因此將共同的屬性提取成為一個(gè)公用的類(此類包含了共同的屬性)如:

public class User {

??? private int id ;

??? private Contact conta ct ;

?

}

//set,get 方法略

public class Contact {

private String name ;

private boolean sex ;

}

//set,get 方法略

User.hbm.xml 如下:

< hibernate-mapping package = "com.test.hibernate" >

??? < class name = "User" table = "user" >

?????? < id name = "id" >

?????????? < generator class = "native" ></ generator >

?????? </ id >

?????? <component name= "contact">

?????????? < property name = "name" ></ property >

?????? ??? < property name = "sex" ></ property >

?????? </component>

??? </ class >

對(duì)關(guān)系模型沒有任何影響,這樣適合復(fù)用;

復(fù)合主鍵映射

通常將復(fù)合主鍵相關(guān)的屬性放到一個(gè)單獨(dú)的類中,這個(gè)是有約束的:

l ?????? 必須實(shí)現(xiàn)序列化接口

l ?????? 必須寫 hashCode() equals()

public class User {

??? private int age ;

??? private PK composite ;// 復(fù)合主鍵

?

}

//set,get 方法略

public class PK {

private String name ;

private boolean sex ;

}

//set,get 方法略

User.hbm.xml 如下:

< hibernate-mapping package = "com.test.hibernate" >

??? < class name = "User" table = "user" >

?????? <composite-id name= " composite ">

?????? ??? <key- property name = "name" ></key- property >

?????? ??? <key- property name = "sex" ></key- property >

</composite-id>

< property name = "name" ></ property >

?????? ??? </ class >

集合的映射

t_collection_mapping

id

name

1

xxx

t_set_values

set_id

set_value

1

A

1

b

t_list_values

list_id

list_value

list_index

1

c

0

1

d

hibernate映射二


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 舞阳县| 广安市| 龙海市| 弥渡县| 芜湖县| 汝阳县| 桃源县| 寿阳县| 乐清市| 儋州市| 乌恰县| 颍上县| 双柏县| 河源市| 汶川县| 太仆寺旗| 谢通门县| 武隆县| 军事| 翁源县| 舟曲县| 曲周县| 海兴县| 天峨县| 交城县| 郴州市| 佛山市| 和林格尔县| 蓝田县| 兰考县| 昌吉市| 四会市| 忻城县| 尖扎县| 大渡口区| 化德县| 河北区| 洪湖市| 木里| 博湖县| 渝北区|