簡體   English   中英

Hibernate提供了幾種訪問數據庫的方式?

[英]How many ways Hibernate provide to access database?

Hibernate提供了幾種訪問數據庫的方式?

例如,我想將對象CRUD到數據庫,發現:

  1. 使用SessionFactory中的會話:session.save(object); ...

  2. 使用休眠查詢語言。

  3. 使用休眠條件查詢。

  4. 使用本機SQL。

但是我不知道該怎么用。 請在“優先級降低順序”中列出您訪問數據庫的做法以及這樣做的原因。

謝謝。

如果您具有ID並需要關聯的實體,請使用Session.get()。 它是高效的,並且利用一級緩存來避免一次又一次地重新執行查詢。

如果您需要通過其他條件獲取實體(例如,具有給定名字的所有用戶),請使用JPQL查詢。 與標准查詢相比,它們易於編寫,易讀且具有較少的限制。

如果您需要采用各種可選條件(例如用於復雜的搜索表單),則條件API是工作的工具。 但是它不能完成JPQL查詢的所有工作。 還有其他可用的API,如果需要,您可以相對容易地編寫一個生成動態JPQL查詢的API。

如果您有無法使用JPQL表示的非常復雜的查詢,請使用SQL。

要將內容寫入數據庫,通常不應該使用查詢,除非在非常特殊的情況下,必須以相同的方式修改許多實體。 而是讓實體進行修改,然后進行修改。 Hibernate將自動保存其新狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM