JPA:实体经理';s find方法vs jpql连接
如果我有一个与实体B有一对多关系的实体A,并且我必须获取A和关联的B,我可以使用EntityManager的find方法,或者使用JOIN编写JPQL查询JPA:实体经理';s find方法vs jpql连接,jpa,jpql,entitymanager,Jpa,Jpql,Entitymanager,如果我有一个与实体B有一对多关系的实体A,并且我必须获取A和关联的B,我可以使用EntityManager的find方法,或者使用JOIN编写JPQL查询 在效率和最小DB调用方面,哪种方法更好?我假设EntityManager.find(类、主键等)调用将加载所有相关的B,这要归功于@JoinTable和@OneToMany注释的正确使用,因此find和JPQL连接在单个调用中产生相同的结果 如果这是真的,那么我对Hibernate和JPA(2.0/2.1)的经验是没有区别,特别是如果使用我使
在效率和最小DB调用方面,哪种方法更好?我假设EntityManager.find(类、主键等)调用将加载所有相关的B,这要归功于@JoinTable和@OneToMany注释的正确使用,因此find和JPQL连接在单个调用中产生相同的结果 如果这是真的,那么我对Hibernate和JPA(2.0/2.1)的经验是没有区别,特别是如果使用我使用的辅助缓存。做任何方便的事 话虽如此,唯一可以确定的方法是自己进行计时。不仅不同的JPA实现(如Hibernate和EclipseLnk)之间存在差异,而且同一系统的不同版本之间也存在差异
此外,您的JPQL性能将根据您是否预编译了查询(我总是这样做)或它是一个动态标准JPQL而有所不同。此外,各种辅助缓存极大地影响性能 谢谢萨金塔。需要查看您提到的所有要点。如果一级缓存中存在一个对象,那么find将立即获取该对象,因此没有SQL,这一事实又如何呢。JPQL将始终发布SQLGood point Billy。这对做出选择有很大帮助。