国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Hibernate實(shí)戰(zhàn)(第2版)讀書筆記

開發(fā) 后端
本文是作者認(rèn)真學(xué)習(xí)Hibernate作下的筆記,參考的書籍是Hibernate實(shí)戰(zhàn)(第2版)。

最近時(shí)間重讀hibernate實(shí)戰(zhàn)(第2版),哈哈,很長(zhǎng)時(shí)間不用幾乎都忘完了。現(xiàn)在作為讀書筆記記錄下來,以供自己和別人參考。部分例子摘自hibernate實(shí)戰(zhàn)(第2版)書中。本人能力有限,難免出現(xiàn)錯(cuò)誤的地方,歡迎指正。

在hibernate使用seqence的主鍵生成策略時(shí)候,要這樣寫(下面的寫法是針對(duì)HSQLDB,不清楚在其他數(shù)據(jù)庫(kù)也通用)

Xml代碼:

  1. <id column="MY_ID">    
  2.  <generator class="sequence">    
  3.   <param name="sequence">MY_SEQUENCEparam>    
  4.   <param name="parameters">    
  5.     START WITH 1 INCREMENT BY 1     
  6.   param>    
  7.  generator>    
  8. <id>    
  9. <id column="MY_ID"> 
  10.  <generator class="sequence"> 
  11.   <param name="sequence">MY_SEQUENCEparam> 
  12.   <param name="parameters"> 
  13.     START WITH 1 INCREMENT BY 1  
  14.   param> 
  15.  generator> 
  16. <id>  

hibernate實(shí)戰(zhàn)(第2版)書中是這樣寫的 INCREMENT 1 START WITH 1,這樣寫插入的call next value for MY_SEQUENCE 返回的是0,START WITH 1 INCREMENT BY 1 執(zhí)行call next value for MY_SEQUENCE返回的是1,這樣奇怪的問題,難道是hsqldb有bug?我也沒有去做過多的深究。

Xml代碼:

  1. <class dynamic-insert="true" dynamic-update="true">   

dynamic-insert 屬性告訴hibernate是否在insert語句中包含空的屬性值(設(shè)置為true,是表明在insert語句中不包含為null的屬性,也就是insert語句中包含的屬性必須是非空的字段)。

這兩個(gè)屬性在某些地方會(huì)有用,比如說在更新中設(shè)置dynamic-update=true,如果你僅僅更新了一個(gè)屬性,沒有必要把其他屬性的更新也放在sql中,也提高了數(shù)據(jù)庫(kù)的執(zhí)行效率。但是也帶來一個(gè)副作用,可能就是hibernate要進(jìn)行比較每個(gè)屬性的值,來決定是否在sql語句中包含這個(gè)字段。當(dāng)然這對(duì) 字段比較多的類是比較有用的。dynamic-insert在做insert操作時(shí)候,也是如此。

Xml代碼:

  1. <hibernate-mapping default-access="field">    
  2. <class mutable="false">   

標(biāo)記這個(gè)類為不可變類。這樣hibernate就可以避免做臟檢查。為了保持這個(gè)不可變屬性,***不寫set方法,僅僅保留get方法。設(shè)置值通過構(gòu)造來設(shè)置。還要明確指示hibernate訪問這個(gè)類的字段要通過field來訪問,而不是通過get-set方法,這個(gè)由 hibernate-mapping的 default-access="field"來設(shè)置。

Xml代碼:

  1. <hibernate-mapping auto-import="false">    
  2.  <import class="mypackage.Class" rename="Hello" />    
  3. hibernate-mapping>   

一般情況下,你寫一個(gè)類的映射后,hibernate 會(huì)自動(dòng)的導(dǎo)入到HQL的命名空間中。你在HQL查詢時(shí)候可以僅僅通過類名,而不是包名.類名來使用指定的類了。但是,存在這樣一種情況,如果在不同包中有相同的類名,在HQL中就會(huì)引起歧義,不過一個(gè)很好的辦法就是在hibernate-mapping中關(guān)閉自動(dòng)導(dǎo)入的屬性,采取顯式導(dǎo)入,然后重命名之。這樣,你在HQL中就可以直接寫 from Hello,而避免了歧義。

Xml代碼:

  1. <hibernate-mapping package="mypackage.model">   

定義package這個(gè)屬性,可以在這個(gè)映射文件中給所有未以包名開頭的類名加上定義的包作為前綴。

Xml代碼:

  1. <property name="description" column="`description`">   

之所以加反引號(hào),是因?yàn)槟阌X得可能description在特定的數(shù)據(jù)庫(kù)中是關(guān)鍵字。你加上反引號(hào)后,hibernate會(huì)為你針對(duì)不同的數(shù)據(jù)庫(kù)做特定的轉(zhuǎn)化。例如sqlserver,hibernate會(huì)為你加上[description],mysql加上`description`,另外在在hsqldb中給description加反引號(hào)后,產(chǎn)生的是"description",這樣執(zhí)行起來反而會(huì)報(bào)錯(cuò)。

Xml代碼 :

  1. <property name="description" column="desc" access="field">   

指定description字段通過field直接訪問。

Xml代碼:

  1. <property name="total" formula="total + tax_rate * total">   

這個(gè)公式在每次查詢時(shí)候求值,并且這個(gè)屬性不會(huì)被保存和更新,如果你改變其中的數(shù)據(jù)例如tax_rate,屬性值不會(huì)去自動(dòng)計(jì)算。

Xml代碼:

  1. <property name="mydata" update="false" insert="false">   

如果update和i nsert都設(shè)置false的話,這個(gè)字段就不會(huì)出現(xiàn)在INSERT和UPDATE語句中。通常不再類中給不可變的屬性添加公有的設(shè)置方法。

Xml代碼:

  1. <property generated="always"   

generated的合法值是always和insert。這個(gè)屬性通常和dynamic-insert配合起來才更有用。一般用來在屬性中插入默認(rèn)值。

initial_price number(10, 2) default '1'

Xml代碼:

  1. <property name="initial_price">    
  2.  <column name="initial_price"   
  3. default="1" generated="insert"/>    
  4. property>   

其中的default屬性,只在生成表結(jié)構(gòu)時(shí)候有用。hibernate并不會(huì)在Java類中,給空的屬性設(shè)置默認(rèn)值。

在插入有default屬性的字段中,要想使default起作用,必須設(shè)置dynamic-insert=true,這樣保證有default屬性的字段字段不會(huì)出現(xiàn)在insert中(default的字段為null),否則,它的值為null(插入NULL而不是默認(rèn)值),另外默認(rèn)值插入到數(shù)據(jù)庫(kù)之后,因?yàn)樵O(shè)置了generated=always,hibernate會(huì)在插入后自動(dòng)的執(zhí)行一個(gè)select,給Java類中的屬性設(shè)置,如果沒有設(shè)置generated屬性,需要顯式調(diào)用session.flush()語句。

Xml代碼:

  1. <class name="Hello">    
  2.  <component name="Address">    
  3.   <property name="">    
  4.  <component>    
  5. class>   

如果component中說有的屬性都為null,那么查詢時(shí)候,這個(gè)組件個(gè)引用是null,就是說hello.getAddress()返回的是null,只要有至少一個(gè)不為null,那么返回這個(gè)組件的引用將不是null。

【編輯推薦】

  1. 初學(xué)者適用的Hibernate學(xué)習(xí)方法
  2. Hibernate優(yōu)化方法解析
  3. Hibernate一對(duì)多關(guān)系的處理
  4. Struts與Hibernate的***結(jié)合方案
  5. Hibernate的性能優(yōu)化

 

責(zé)任編輯:仲衡 來源: JavaEye技術(shù)網(wǎng)站
相關(guān)推薦

2009-06-18 14:20:45

hibernate實(shí)戰(zhàn)

2016-11-16 09:52:39

Linux讀書筆記內(nèi)核

2015-03-10 14:05:46

程序員軟件架構(gòu)讀書筆記

2017-02-07 15:54:14

數(shù)據(jù)可視化數(shù)據(jù)分析

2015-07-15 13:45:51

SQLServer讀書筆記

2015-07-15 13:48:01

SQLServer讀書筆記

2021-01-04 18:21:47

AI

2020-12-24 17:40:00

MySQL角色管理數(shù)據(jù)庫(kù)

2014-04-16 11:39:52

2021-09-23 14:39:28

鴻蒙HarmonyOS應(yīng)用

2013-07-22 11:25:12

2015-06-19 07:50:47

2020-12-24 18:00:45

MySQL元數(shù)據(jù)鎖數(shù)據(jù)庫(kù)

2009-08-26 17:22:09

C#語言

2009-08-25 16:32:24

C#語言

2009-09-29 17:22:30

Hibernate S

2009-06-16 15:52:18

Hibernate文檔

2009-06-16 15:32:24

Hibernate文檔

2009-06-16 15:42:44

Hibernate文檔

2009-06-18 11:25:26

Hibernate L
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日本大香伊一区二区三区| 国产奶头好大揉着好爽视频| 欧美中文字幕在线观看| 亚洲妇女成熟| 亚洲影院理伦片| 中文字幕无码不卡免费视频| 国内精品伊人久久久久av一坑| 亚洲已满18点击进入在线看片 | 日韩精品高清不卡| 成人综合电影| 日韩成人综合| 国产精品美乳在线观看| 外国成人在线视频| 日本电影亚洲天堂| 国产精品亚洲人成在99www| 久久国产色av| 99热这里只有精品首页 | 成人黄色激情网| 91超碰成人| 国产精品免费一区二区三区| 国模吧视频一区| 精品久久久久久中文字幕动漫| 国产精品大片| 麻豆传媒一区| 蜜臀99久久精品久久久久久软件| 欧美日韩亚洲一区二区三区在线观看| 欧美日韩国产成人精品| 亚洲xxx视频| 亚洲精品人人| 亚洲人成网站在线播放2019| 激情小说亚洲一区| 女人天堂av手机在线| 国产精品久久久久久久久久免费看 | 99精品视频一区| 亚洲爆乳无码专区| 中文字幕一区免费在线观看 | 里番在线观看网站| 亚洲国产精品一区二区三区| 国产羞羞视频在线播放| 中文字幕亚洲欧美| 国产精品久久久久久久久久白浆| 国产精品久久久久77777| 一区在线播放| 潘金莲一级淫片aaaaa免费看| av动漫一区二区| 影院免费视频| 欧美变态tickling挠脚心| 中韩乱幕日产无线码一区| 国产综合在线视频| 欧美国产三区| 国产爆乳无码一区二区麻豆| 国产精品视频免费| 欧美高清电影在线| 亚洲欧美日韩成人| 国产一区二区三区四区五区传媒| 黄色国产精品一区二区三区| 国产成人精品一区二| 男人揉女人奶房视频60分| 国产欧美精品一区二区色综合| 久久艹在线视频| 日韩av综合在线观看| 国产亚洲欧洲一区高清在线观看| 欧美激情中文网| 欧美少妇一级片| 国产一区二区精品| 亚洲国产美女久久久久| wwwwww欧美| 欧美激情偷拍| 午夜伦理精品一区| 欧美日韩不卡合集视频| 黄色网址在线播放| 日本成人中文| 91免费观看| 风流少妇一区二区| 伊人色综合网| 久久久精品在线| 最新成人av网站| 午夜伦伦电影理论片费看| 欧美一区二区私人影院日本| 国产精品久久久久av蜜臀| 日韩av电影免费播放| 专区另类欧美日韩| 性国裸体高清亚洲| 国产欧美日韩综合精品二区| 久久亚洲精品小早川怜子| 免费a级人成a大片在线观看| 91av视频在线播放| 岛国一区二区三区| 成人影院免费观看| 欧洲亚洲免费视频| caoporen国产精品视频| www在线视频| 国产精品视频网| 久久综合狠狠综合| 久久av色综合| 18成人免费观看网站下载| 久久久久国产精品免费免费搜索| 在线看福利影| 91精品免费| 亚洲色图欧洲色图| av日韩久久| 国产 国语对白 露脸| 欧美丰满一区二区免费视频 | 日韩高清二区| 在线成人性视频| 色妞www精品视频| 亚洲伊人春色| 人妻熟女一二三区夜夜爱| 日韩国产精品一区| 麻豆成人精品| 好操啊在线观看免费视频| 亚洲最大成人在线| 红桃av永久久久| 少妇精品久久久| 日韩欧美在线免费观看视频| 日韩精品中文字幕视频在线| 中文精品视频| 韩国中文字幕2020精品| 91精品在线一区| 亚洲成人1区2区| 日韩理论电影| 一级片在线视频| 91久久精品在线| 欧美午夜影院在线视频| 四虎8848精品成人免费网站| 老司机性视频| 青青a在线精品免费观看| 国产精品美日韩| 欧美爱爱网站| 热国产热中文视频二区| 日本久久久久久| 亚洲国产精品一区二区久久| 精品美女视频| 国模吧精品人体gogo| 国产成人成网站在线播放青青| 在线观看视频91| 中日韩男男gay无套| 羞羞网站在线免费观看| 秋霞毛片久久久久久久久| 91精品欧美综合在线观看最新 | 在线观看欧美日韩电影| 亚洲人成77777| 亚洲区中文字幕| 久久久亚洲午夜电影| 都市激情亚洲欧美| 亚州黄色一级| 国产精品国产三级国产专区53| 欧美日本不卡视频| 日韩高清欧美激情| 高清亚洲高清| 羞羞网站在线观看入口免费| 国产成人短视频| 色婷婷综合久色| 老司机精品视频一区二区三区| 成人免费毛片嘿嘿连载视频…| 99热成人精品热久久66| 欧美日韩国产91| 一区二区三区欧美视频| 国产一区清纯| 成人小电影网站| 妓院一钑片免看黄大片| 国产成人精品优优av| 欧美性受xxxx黑人xyx| 国产精品普通话对白| 欧美日韩在线精品一区二区三区激情综合 | 成人私拍视频| 精品国产导航| 毛片免费在线观看| 日韩久久一级片| 免费av在线一区二区| 成人网在线免费观看| 亚洲欧美日韩天堂| 久久综合色8888| 电影网一区二区| 狠狠操夜夜操| 亚洲欧美日韩不卡| 18久久久久久| 亚洲在线中文字幕| 国产一区二区三区久久| 国产精品久久久久av电视剧| 久久综合色占| 国产aaaaa毛片| 亚洲最大福利网站| 一区二区欧美久久| 亚洲午夜三级在线| 日韩不卡免费视频| 伊人久久亚洲| 久久日韩视频| 在线黄色免费观看| 国产免费高清一区| 久久亚洲精品一区| 欧美日韩亚洲国产综合| 26uuu亚洲综合色| 影音先锋中文字幕一区二区| 日韩福利在线观看| 香蕉视频国产在线观看| 小泽玛利亚视频在线观看| 欧美色欧美亚洲另类七区| 国语自产在线不卡| 欧美日韩精品免费观看视频 |