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