- 相關(guān)推薦
HIBERNATE面試常見問題
1.Hibernate的檢索方式
①導(dǎo)航對(duì)象圖檢索 ②OID檢索 ③HQL檢索 ④QBC檢索 ⑤本地SQL檢索
2. Forward與Global-Forward的區(qū)別
答:Forward是根據(jù)Action return的值找到對(duì)應(yīng)的JSp頁。當(dāng)多個(gè)Action共同return同一個(gè)值時(shí),可將這個(gè)Forward元素寫在Global-Forward中。
3、在Hibernate應(yīng)用中Java對(duì)象的狀態(tài)有哪些?
1臨時(shí)狀態(tài)(transient):剛剛用new語句創(chuàng)建,還沒有被持久化,不處于Session的緩存中。處于臨時(shí)狀態(tài)的Java對(duì)象被稱為臨時(shí)對(duì)象。
2持久化狀態(tài)(persistent):已經(jīng)被持久化,加入到Session的緩存中。處于持久化狀態(tài)的Java對(duì)象被稱為持久化對(duì)象。
3游離狀態(tài)(detached):已經(jīng)被持久化,但不再處于Session的緩存中。處于游離狀態(tài)的Java對(duì)象被稱為游離對(duì)象。
4、三種檢索策略是什么,分別適用于哪種場(chǎng)合?
立即檢索--
優(yōu)點(diǎn):對(duì)應(yīng)用程序完全透明,缺點(diǎn):select語句數(shù)目多。適用:類級(jí)別。
延遲檢索--
優(yōu)點(diǎn): 由應(yīng)用程序決定加載哪些對(duì)象,可以避免執(zhí)行多余的select語句以及避免加載不需要訪問的對(duì)象,節(jié)省內(nèi)存空間,提高檢索效率。
缺點(diǎn): 應(yīng)用程序如果要訪問游離態(tài)的代理類實(shí)例,必須保證它在持久化時(shí)已經(jīng)被初始化。
適用: 一對(duì)多或多對(duì)多關(guān)聯(lián)。應(yīng)用程序不需要立即訪問或者根本不會(huì)訪問的對(duì)象。
迫切左外連接檢索:
優(yōu)點(diǎn):對(duì)應(yīng)用程序完全透明,不管對(duì)象處于持久化狀態(tài)還是游離狀態(tài),應(yīng)用程序都可以方便的從一個(gè)對(duì)象導(dǎo)航到另一個(gè)與它相關(guān)聯(lián)的對(duì)象。使用了外連接,select語句數(shù)目少。
缺點(diǎn):可能會(huì)加載程序不許要訪問的對(duì)象。復(fù)雜的數(shù)據(jù)庫表連接形象檢索性能。
適用:一對(duì)一或多對(duì)一關(guān)聯(lián)。應(yīng)用程序需要立即訪問的對(duì)象。數(shù)據(jù)庫系統(tǒng)具有良好的表連接性能。
5、ORM解決的不匹配問題(域模型與關(guān)系模型之間存在的不匹配)
域模型是面向?qū)ο蟮,關(guān)系模型是面向關(guān)系的。
域模型中有繼承關(guān)系,關(guān)系模型中不能直接表示繼承關(guān)系。
域模型中有多對(duì)多關(guān)聯(lián)關(guān)系,關(guān)系模型中通過連接表來表示多對(duì)多關(guān)聯(lián)關(guān)系。
域模型中有雙向關(guān)聯(lián)關(guān)系,關(guān)系模型中只有單向參照關(guān)系,而且總是many參照one方。
域模型提倡精粒度模型,關(guān)系模型提倡粗粒度模型。
6、映射繼承關(guān)系的三種方式?
(1)繼承關(guān)系樹的每個(gè)具體類對(duì)應(yīng)一張表:在具體類對(duì)應(yīng)的表中,不僅包含和具體類屬性對(duì)應(yīng)的字段,還包括與具體類的父類屬性對(duì)應(yīng)的字段。
(2)繼承關(guān)系樹的根類對(duì)應(yīng)一張表:在根類對(duì)應(yīng)的表中,不僅包括根類屬性對(duì)應(yīng)的字段,
還包括根類的所有子類屬性對(duì)應(yīng)的字段。
(3)繼承關(guān)系樹中的每個(gè)類對(duì)應(yīng)一張表,每個(gè)表中只包括和這個(gè)類本身屬性對(duì)應(yīng)的字段,子類的表參照父類對(duì)應(yīng)的表。
7、Session的find()方法以及Query接口的區(qū)別。
答案Session類的find()方法以及Query接口都支持HQL檢索方式。這兩者的區(qū)別在于,前者只是執(zhí)行一些簡(jiǎn)單HQL查詢語句的便捷方法,它不具有動(dòng)態(tài)綁定參數(shù)的功能,而且在Hibernate3.x版本中,已經(jīng)淘汰了find()方法;而Query接口才是真正的HQL查詢接口,它提供了以上列出的各種查詢功能。
8.hibernate的配置文件(hibernate.properties)中 hibernate.show_sql=true/flase
在開發(fā)階和測(cè)試段應(yīng)設(shè)置為()在發(fā)布階段應(yīng)設(shè)置為();true\\false
9.映射一對(duì)多雙向關(guān)聯(lián)關(guān)系中設(shè)置SET元素:
請(qǐng) 【HIBERNATE面試常見問題】相關(guān)文章: 面試常見問題及回答06-20 采購面試常見問題06-10 面試英語常見問題06-14 英文面試常見問題03-19 MBA面試常見問題04-26 面試常見問題及回答03-14 hr面試中的常見問題及面試技巧05-19 酒店面試常見問題10-17 面試常見問題及答案匯總05-12 外企面試常見問題及其答案08-16