![](/img/trans.png)
[英]JPA EntityManager: 'find' vs. 'createQuery' and 'getResultList'
[英]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.