簡體   English   中英

當使用EntityManager的createQuery()和find()方法時?

[英]When use createQuery() and find() methods of EntityManager?

我想知道這些方法之間的區別。

使用EntityManager的createQuery()find()方法時?

他們每個人的優勢是什么?

謝謝你的回答。

當您想要通過主鍵查找實體時,可以使用find 這意味着你確切地知道你在尋找什么,你只想把它從數據庫中拉出來。

如果要使用條件查找實體,或者如果要使用JPQL語句定義返回的內容,則可以使用createQuery 因此,當您想要獲得符合某些條件的實體或實體集合時,您將使用該查詢。

createQuery方法允許您創建將要執行的JPQL語句。 允許的JPQL語句比find執行的語句更具動態性。 例如,給出下表:

create table CAT(
   cat_id integer,
   cat_name varchar(40)
)

您可以執行查詢以按名稱查找cat。

entityManager.createQuery("select c from Cat c where c.name = :name");

find方法僅允許您使用其主鍵檢索對象。 所以要使用上表的find方法:

entityManager.find(Cat.class, new Integer(1));

簡而言之, createQuery允許你在一個更加時尚動感檢索實體,而find限制你搜索與已知ID的實體。

暫無
暫無

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

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