编程语言
首页 > 编程语言> > java-em.find和em.createQuery有什么区别

java-em.find和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()-或抛出),要么返回一个列表(getResultList()).

标签:openjpa,jpa,java
来源: https://codeday.me/bug/20191101/1984996.html