我从 OpenJPA 1.2 迁移到 Hiberante 4.0
我正在使用 TimesTen DB
我正在执行本机查询以获取我需要的对象的 id,然后对它们中的每一个执行查找。我使用方法而OpenJPA
不是 find findCache()
,如果它返回 null 我使用find()
方法,在休眠中我只使用find()
方法。
我在同一个数据库上执行了这个操作。
经过几次测试后,我发现 OpenJPA 的性能要好得多。
我打印了休眠会话的统计信息(在查询并找到相同的对象之后),并看到hit\miss
一级缓存的计数始终为 0。而 OpenJPA 通过使用该findCache
方法获取对象显然达到了它的缓存。
如何提高 Hibernate 中 find 的性能?我怀疑它指的是这个工具的一级缓存实现的差异。
另一个事实:我在应用程序运行时使用相同的 EntityManager(我需要最小化创建 EntityManager 的成本 - 我的应用程序是软实时的)
谢谢。