WEB开发网
开发学院软件开发Java Java Persistence API 2.0 更新 阅读

Java Persistence API 2.0 更新

 2009-12-24 00:00:00 来源:WEB开发网   
核心提示: Access 类型(@Access)也在 JPA 2.0 中进行了扩展,以在每个持久性类型上、或者甚至在单独的属性上启用规范,Java Persistence API 2.0 更新(2),当您架构您的实体定义和使用这些实体的关联应用程序时,这些更改提供了更多灵活性,(顺便说一下,针对第三方缓存实

Access 类型(@Access)也在 JPA 2.0 中进行了扩展,以在每个持久性类型上、或者甚至在单独的属性上启用规范。当您架构您的实体定义和使用这些实体的关联应用程序时,这些更改提供了更多灵活性。

在 JPA 2.0 中,除了现有的 OneToMany、ManyToOne 和 ManyToMany 关系,还增强了 ElementCollections 的映射支持。与此增强的映射集合支持相关的是针对 MapKeyColumn、MapKeyClass 和 MapKeyJoinColumn 的关联注释。另外,更新了 JPQL 以支持这些新功能。

JPA 2.0 中另一个与域建模相关的新功能是 derived identities(派生身份)的定义。这使实体的 ID 能够从其他实体派生出来,这提供了 parent-to-dependent 关系。JPA 2.0 规范中有几页(2.4 节)是关于派生身份场景的。

JPA 运行时

JPA 2.0 中有几个基本的 JPA API 需要更新: EntityManagerFactory、EntityManager 和 Query。幸好,这些更新以向上兼容的方式进行,使得迁移无论从应用程序的角度还是从 JPA 提供商的角度来说都会更加平滑。这些 API 更新中的很多都与访问主要的新 JPA 2.0 特性有关,比如 Metamodel 和 Criteria API(稍后会详细介绍它们),但也有一些其他的运行时特性值得一提:

JPA 2.0 的一个新特性就是引入 pessimistic LockManager。JPA 1.0 仅定义了乐观锁(optimistic locking)语义,但是真正的企业级应用有时还需要更严格的悲观锁(pessimistic locking)功能。悲观锁语义的应用可以通过各个 EntityManager 或 Query 方法中的 LockModeType 指定。(Apache OpenJPA 以前提供了 openjpa.LockManager 属性和 ReadLockMode hint,可以用于在 OpenJPA 内进一步配置悲观锁语义。)

另一个新的 JPA 2.0 运行时更新提供了对 JPA 提供商的二级缓存的访问,如果缓存可用的话。JPA 2.0 仍然不需要 JPA 提供商实际提供二级缓存,规范也没定义如何插入或利用二级缓存。但是如果缓存可用,这一新 API 和相关注释会帮助管理二级缓存的内容。(顺便说一下,针对第三方缓存实现,Apache OpenJPA 确实提供了二级缓存插件。)

上一页  1 2 3 4  下一页

Tags:Java Persistence API

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接