- 什麼是JPA?它與JDBC有什麼不同?
php小編草莓精選了一些Java JPA面試題,旨在檢驗你對持久化框架的掌握程度。這些問題涵蓋了JPA的基礎知識、高階特性以及實際應用場景,能幫助你更好地準備面試,展現自己的技術能力。無論是初學者還是有經驗的開發者,都可以從這些問題中深入了解JPA,並提升自己在持久化框架方面的技能水平。
- 在JPA中,什麼是實體(Entity)?
實體是JPA中用來表示持久化物件的類別。它可以透過使用@Entity註解來定義,並且需要實作Serializable介面。實體類別通常包含欄位、屬性和方法,這些欄位和屬性對應於資料庫中的欄位和資料表,而方法則是用來操作這些欄位和屬性的。
- JPA中有哪些持久化策略?分別說明其優缺點。
JPA提供了多種持久化策略,包括:
-
託管(Managed): 實體透過EntityManager管理,生命週期由JPA控制,優點是簡化了對實體的管理,缺點是增加了記憶體開銷。
-
脫離(Detached): 實體從EntityManager分離出來,不在JPA的管理之下,優點是減少了記憶體開銷,缺點是需要手動管理實體的生命週期。
-
遊離(Transient): 實體不參與任何持久化操作,優點是不會被持久化到資料庫中,缺點是不能被JPA管理和查詢。
-
刪除(Removed): 實體被標記為刪除,在交易提交後從資料庫中刪除,優點是確保資料的一致性,缺點是需要手動管理實體的生命週期。
- JPA中如何使用查詢語言(JPQL)來查詢資料?
JPQL(Java Persistence Query Language)是JPA中用於查詢資料的語言,它類似於SQL,但語法更簡單,更接近Java語言。 JPQL查詢可以分為兩類:
-
選擇查詢: 用於檢索符合特定條件的數據,語法為:SELECT [select_clause] FROM [entity_name] [where_clause]
-
更新查詢: 用於更新或刪除數據,語法為:UPDATE [entity_name] SET [assignment_clause] [where_clause] 或 DELETE FROM [entity_name] [where_clause]
- JPA中如何實作關係映射?
JPA支援多種關係映射類型,包括:
-
一對一(OneToOne): 一個實體可以與另一個實體建立一對一的關係,可以透過@OneToOne註解來定義。
-
一對多(OneToMany): 一個實體可以與多個實體建立一對多關係,可以透過@OneToMany註解來定義。
-
多對一(ManyToOne): 多個實體可以與一個實體建立多對一關係,可以透過@ManyToOne註解來定義。
-
多對多(ManyToMany): 多個實體可以與多個實體建立多對多關係,可以透過@ManyToMany註解來定義。
- JPA中如何優化效能?
JPA提供了多種效能最佳化技術,包括:
-
使用快取: JPA可以透過快取實體和查詢結果來提高效能。
-
使用索引: 可以在資料庫表中建立索引來提高查詢效能。
-
使用批次: JPA支援批次操作,可以提高大量資料更新或刪除的效能。
-
使用非同步查詢: JPA支援非同步查詢,可以在背景執行查詢,而不會阻塞主執行緒。
以上是Java JPA 面試題精選:檢視你的持久化框架掌握程度的詳細內容。更多資訊請關注PHP中文網其他相關文章!