[英]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.