自动预装入 WSJPA ObjectCache
OpenJPA 的 WebSphere® Java™ Persistence API (WSJPA) 扩展提供只读 ObjectCache,其可以在特定用例中改善性能。缺省情况下,以懒方法装入高速缓存中的数据,这表示在应用程序请求单个实体时将其装入内存中。如果您希望从开始就装入所有实体,那么您可以配置应用程序服务器从数据库预装入在 ObjectCache 中配置的所有实体。预装入 ObjectCache 将使您可以高速缓存在您通过懒方法装入 ObjectCache 时受到限制的实体。仅当您使用处于 JPA 2.0 规范级别的 WSJPA 时,才支持此配置。
关于此任务

- 对于在 ObjectCache 中配置的实体,您还需要配置 ObjectCache 中的所有积极关系;任何懒关系将不可用。
- 虽然应用程序服务器正在预装入 ObjectCache 时,将从数据库访存实体。应用程序服务器不会将任何实体添加到其他方法装入的 ObjectCache。
- 如果您的对象图形很复杂,那么自动装入高速缓存会耗费极长的时间。
- 启用此功能时,请小心,因为它会耗用所有可用内存。为了让该功能工作,JPA 环境需要在内存中有完整的数据集。
预装入过程完成时,您会看到如下的参考消息:
Successfully loaded the ObjectCache with [...] Entities in [...] seconds.
过程
示例
- 以下属性指定在应用程序服务器创建第一个 EntityManager 时将自动装入 ObjectCache:
<property name=" wsjpa.ObjectCache" value=”true(Types=com.ibm.wsjpa.Foo; com.ibm.wsjpa.Bar, MaxSize=auto)”/>
- 以下属性指定在应用程序服务器创建第一个 EntityManager 时将自动装入 ObjectCache,每隔 20 分钟将重新装入 ObjectCache:
<property name=" wsjpa.ObjectCache" value=”true(Types=com.ibm.wsjpa.Foo; com.ibm.wsjpa.Bar, MaxSize=auto, EvictionSchedule=+20)”/>