一直对jpa怀有好感,以前也是用hibernate做jpa的实现产品,运行起来也相当不错,
最近换成openjpa做jpa的实现,突发奇想的对openjpa做了一下测试,没有想到openjpa的性能那么差劲,运行时间一般是hibernate实现jpa的3-8倍,恐怖!
下面是jpa查询结果的代码 ,同样还做了一部份关于关于Hibernate-jpa和openjpa增删改的性能测试,由于代码多就不拿出来了,测试结果都证明了openjpa的性能实在令人堪忧
--openjpa--查询100条记录
@Test
public void testFind_fetch() {
long start = System.currentTimeMillis();
DataResult<DataDictionary> qt = dataDictionaryService.getPageData(DataDictionary.class, 1, 100);
System.out.println(qt.getTotalrecord());
List<DataDictionary> listE = qt.getResultlist();
DataDictionary emp = null;
for(int i=0; i<listE.size(); i++) {
emp = listE.get(i);
// 延迟加载测试,openjpa不支持@Basic(fetch=FetchType.LAZY)
System.out.println(emp.getName());
System.out.println(emp.getTypename());
System.out.println(emp.getListorder());
}
long end = System.currentTimeMillis();
System.out.println(end-start);
}
控制台打印:1828
--Hibernate-jpa查询100条记录
@Test// 性能测试-hibernate实现jpa
public void testFind_fetch() {
long start = System.currentTimeMillis();
DataResult<DataDictionary> qt = dataDictionaryService.getPageData(DataDictionary.class, 1, 100);
System.out.println(qt.getTotalrecord());
List<DataDictionary> listE = qt.getResultlist();
DataDictionary emp = null;
for(int i=0; i<listE.size(); i++) {
emp = listE.get(i);
// 字段延迟加载测试,hibernate支持
System.out.println(emp.getName());
System.out.println(emp.getTypename());
System.out.println(emp.getListorder());
}
long end = System.currentTimeMillis();
System.out.println(end-start);
}
控制台打印:469
测试结果:
1.都是从相同的数据库中相同的表中取100条记录,openjpa花费时间1828,hibernate-jpa花费时间469,
2.如果是从相同的数据库中取5条记录,openjpa花费时间1703,hibernate-jpa花费时间438,openjpa的成熟度可想而知。
分享到:
相关推荐
包括TOPLink JPA,Hibernate JPA,Open Jpa,jpa批注
通过参考和引用传智播客的免费教程,将springmvc4.1.6与hibernate4.3.10提供的JPA实现整合,使用mysql5.6.25,在MyEclipse2014中测试通过。可以作为web开发的基础框架使用。 使用说明: 1.需要安装mysql,并创建名为...
JPA-Hibernate包, JPA-Hibernate包, JPA-Hibernate包, JPA-Hibernate包, JPA-Hibernate包, JPA-Hibernate包
jpa测试用例jpa测试用例jpa测试用例
jpa + hibernate 简单列子实现和junit测试 完整jar包都已测试过。
openJPA官方手册,openJPA官方手册openJPA官方手册
JPA jar包,基于JPA的Hibernate实现;hibernate4.2;
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
OpenJPA 是 Apache 组织提供的开源项目,它实现了 EJB 3.0 中的 JPA 标准,为开发者提供功能强大、使用简单的持久化数据管理框架。OpenJPA 封装了和关系型数据库交互的操作,让开发者把注意力集中在编写业务逻辑上...
OpenJPA is Apache's implementation of Sun's Java Persistence 2.0 API (JSR-317 JPA 2.0) specification for the transparent persistence of Java objects. This document provides an overview of the JPA ...
Hibernate开发讲义JPA注解.ppt
关于jpa事物实现相关的hibernate的jar包,完整版。全部导入即可实现相关操作,也可有选择的导入。
邮箱中有一个bug报告,它报告了在Weblogic server环境中的Hibernate和Kodo之间切换JPA持久性提供者时的一个问题。在再现这个bug的过程中,包括如何在Weblogic Server 10.0中安装Hibernate,以及如何使用一个特定的...
Hibernate3的JPA实现所需jar包
HibernateJPA+Struts2.0+MariaDB实现登录功能
JPA Overview and OpenJPA Reference Guide
hibernate jpa 用到的所有jar
hibernate-jpa.jar
默认情况下,当应用程序第一次获取实体标识时,OpenJPA 框架从数据库中一次性获取 50 个连续的实体标识缓存起来,当下一次应用程序需要获取实体标识时,OpenJPA 将首先检测缓存中是否存在实体标识,如果存在,Open...
JPA Hibernate 帮你详细解释jpa中注解的详细用法 帮你更好的去了解和运用