Java持久性API
我是新手。我刚刚学会了它,现在想在我的Java桌面应用程序中使用它。但我有以下问题: 问题1。哪个JPA实现的大小最小(因为我希望应用程序的大小尽可能小)Java持久性API,java,jpa,Java,Jpa,我是新手。我刚刚学会了它,现在想在我的Java桌面应用程序中使用它。但我有以下问题: 问题1。哪个JPA实现的大小最小(因为我希望应用程序的大小尽可能小) 问题2。如何在persistence.xml文件中查找标记的值。我知道它的价值是特定于供应商的,但我找不到从下载的JPA实现的价值。Q1。非常粗略的计算: 带有deps的Hibernate(大约3.4.0.GA版本)约为3.6MB TopLink Essentials(2.0.1-04)约2.4 Mb 日食线(例如TopLink)(1.1.
问题2。如何在
persistence.xml
文件中查找
标记的值。我知道它的价值是特定于供应商的,但我找不到从下载的JPA实现的价值。Q1。非常粗略的计算:
- 带有deps的Hibernate(大约3.4.0.GA版本)约为3.6MB
- TopLink Essentials(2.0.1-04)约2.4 Mb
- 日食线(例如TopLink)(1.1.3-M1)约4.7MB
问题2。打开JAR,检查META-INF/services/javax.persistence.spi.PersistenceProvider文件 你是说内存中的大小?或者罐子的大小?内存中的大小取决于要持久化的类的数量、它们的元数据、打开的EntityManager的数量以及L1/L2缓存中的内容。我知道DataNucleus使用的内存比Hibernate少,因为用户自己也报告过这一点,不知道其他的主要实现是什么 罐子的大小是衡量任何东西的一个毫无意义的尺度,因为那里的大多数东西可能都没有被使用 另外,DataNucleus也是一个JPA1+2实现 问题1。哪个JPA实现的大小最小(因为我希望应用程序的大小尽可能小) 对于JPA1.0:
- Hibernate实体管理器3.4.0.GA:~4.9MB
- 日食1.1.3:~4.7MB
- OpenJPA 1.2.2:~2.7MB(我不确定这一个,目前还没有测试,所以我可能缺少一些JAR)
- DataNucleus 2.0.3:~3.7MB
- 日食1.2和2.0+:~4.8MB
- Hibernate实体管理器3.5.0-Final:~5.8MB
- OpenJPA 2.0.0-beta3:未测量(仍处于测试阶段)
- DataNucleus:
org.DataNucleus.jpa.PersistenceProviderImpl
- EclipseLink:
org.eclipse.persistence.jpa.PersistenceProvider
- Hibernate:
org.Hibernate.ejb.HibernatePersistence
- OpenJPA:
org.apache.OpenJPA.persistence.PersistenceProviderImpl
- TopLink Essentials:
oracle.TopLink.Essentials.PersistenceProvider
服务
文件夹。它是API,不是实现。据我所知,GlassFish使用EclipseLink作为RI。@BalusC您想对JPA实现发表评论吗。我被它的最小尺寸(50KB)所吸引。这里提到的不是JPA的实现。它只是一个JPAAPIJAR(接口),是所有实现所必需的。。。无论大小,您会选择哪种实现?我正要使用TopLink Essentials。为什么你要远离它?@Yatendra因为Toplink Essentials没有发生任何事情(它被维护了,但已经死了),因为它需要编织,因为你需要使用javaagent,因为我总是觉得使用它很痛苦(但对于5个实体来说可能没有那么痛苦)。但它是有效的。@Yatendra我喜欢Hibernate,它被广泛使用、测试和支持,这对我很重要。但是,对于五表应用程序来说,这可能并不是那么关键。也许你应该实现你的应用程序,并与各种JPA提供商一起测试它。