首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

十五道經典 Hibernate 面試題詳解

     編輯:Java 相關知識

整理 15 道涵蓋 ORM 映射、Session 操作、關聯映射、檢索策略、事務隔離、鎖機制等核心知識點的 Hibernate 面試題,附帶答案與解析。

題目與答案

  1. 關系數據模型與對象模型匹配關系(多選)
    A) 表對應類 B) 記錄對應對象 C) 字段對應屬性 D) 表引用關系對應類依賴關系
    答案:A、B、C(D 錯誤:表引用關系對應類關聯關系,非依賴)
  2. SessionFactory 說法正確的(多選)
    A) 每個數據庫事務創建一個 B) 一個對應一個數據源 C) 重量級,單數據源只需一個 D) load() 用於加載持久化對象
    答案:B、C(A 錯誤:SessionFactory 應單例;D 錯誤:load() 是 Session 方法)
  3. Customer.orders (Set) 映射元素
    答案:A) <set>
  4. 級聯保存集合對象的 cascade 值
    A) none B) save C) delete D) save-update
    答案:D
  5. Session 方法有哪些(多選)
    A) load() B) save() C) delete() D) update() E) open() F) close()
    答案:A、B、C、D、F(E 是 SessionFactory 方法)
  6. 同一 Session 兩次 load 同 ID 對象比較結果
    答案:C) true(Session 緩存保證同一 ID 返回同一實例)
  7. 同一事務中修改同一屬性兩次,提交幾條 update
    答案:B) 1(Hibernate 合併同一事務內對同一對象的多次修改)
  8. 持久化層對象狀態(多選)
    A) 臨時/瞬時 B) 獨立 C) 游離/脫管 D) 持久化
    答案:A、C、D(標準術語:Transient、Detached、Persistent)
  9. 對象第幾行變為持久化狀態
    Customer c=new Customer(); //1
    c.setName("Tom"); //2
    Session s=sf.openSession(); //3
    Transaction tx=s.beginTransaction(); //4
    s.save(c); //4
    tx.commit(); //5
    s.close(); //6
    答案:D) line4(save() 瞬間進入持久化狀態)
  10. 對象第幾行變為游離狀態
    答案:F) line6(session.close() 瞬間脫管)
  11. 利用外連結查詢的檢索策略
    A) 立即檢索 B) 延遲檢索 C) 迫切左外連結檢索
    答案:C
  12. 延遲檢索集合,Session 關閉後遍歷會怎樣
    答案:C) 編譯通過,運行時拋出異常(LazyInitializationException,無 Session 無法初始化代理)
  13. HQL 與 SQL 比較(多選)
    A) 沒差別 B) HQL 面向對象,SQL 操作關系庫 C) 都包含 DML D) HQL 僅查詢
    答案:B、D(HQL 支持 bulk update/delete,但不支持 insert)
  14. 事務隔離級別由誰實現
    A) Java 應用 B) Hibernate C) 數據庫系統 D) JDBC 驅動
    答案:C(隔離級別是數據庫特性,Hibernate 僅傳遞設置)
  15. 悲觀鎖 vs 樂觀鎖並發性能
    A) 悲觀鎖 B) 樂觀鎖
    答案:B(樂觀鎖無鎖開銷,衝突少時性能優)

核心知識點總結

  • Session 緩存(一級緩存)保證同一 Session 內同一 ID 對象唯一
  • Hibernate 自動髒檢查合併同一事務內的多次修改
  • 對象三大狀態:Transient(瞬時)、Persistent(持久化)、Detached(游離)
  • 延遲加載需在 Session 開啟期間訪問,否則拋出 LazyInitializationException
  • 事務隔離級別由數據庫實現,Hibernate 僅委託 JDBC 設置
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved