簡體   English   中英

em.find和em.createQuery有什么區別

[英]What is the difference between em.find and em.createQuery

em.find(Enity.classs, Id)

em.createQuery("SELECT e From Entity e WHERE e.Id=:id")

它們是等價的嗎? 如果沒有,它們有何不同?

前者可能更快,因為JPA提供程序不必解析JPA查詢。 但結果SQL應該完全相同。

另外我認為一些提供商可能會在緩存方面對它們進行不同的處理 - 通過密鑰緩存和查詢緩存進行緩存。

最后,使用find()可以使API更加愉快 - 它返回單個條目或返回null 后者要么返回一個結果( getSingleResult() - 或throws),要么返回一個列表( getResultList() )。

暫無
暫無

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

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