jpa官方文档,jpa框架

  jpa官方文档,jpa框架

  Java持久性API (JPA)

  2.0版本现在已经进入了最终的草案提案阶段,这个版本对规范做了重要的更新,就是条件查询(criteria

  查询)添加一个API,一个元模型API,并支持Bean验证[JSR 303]。

  这个版本的条件查询(条件

  Query)API允许你通过调用Java对象的方法来创建查询,而不是将JPA-QL嵌入到字符串中,由JPA实现来处理。在第一个公开草案中,API

  它是基于字符串的,专家组收到了很多反馈,建议他们研究提高法案类型安全性的可能方法。加文(男子名)

  King提出了一个建议,就是基于现有的基于字符串的API,使用Java6

  中的Javax.annotation.Processor自动为应用程序中的每个持久类生成一个元模型类型。结合泛型,这种机制提供了一种有效的

  该变通办法解决了Java缺少用于类的方法和属性的类型安全元模型的问题。每当使用代码生成器时,都会引起争议,因为生成的代码往往晦涩难懂,而且通常

  需要特定IDE的支持。但是在这里,因为生成的代码只用于类型信息,所以仍然有可能保持它的整洁。例如,给定一个持久类:

  导入Java . util . set;

  导入Java . math . bigdecimal;

  @实体公共类顺序{

  @Id整数orderId

  @ManyToOne Customer客户;

  @OneToMany设置lineitems

  地址送货地址;

  BigDecimal totalCost

  .相应的典型元模型类Order_如下所示:

  导入Java . math . bigdecimal;

  导入javax . persistence . meta model . attribute;

  导入javax . persistence . meta model . set;

  导入javax . persistence . meta model . typesafetamodel;

  导入javax . annotation . generated;

  @已生成

  @ TypeSafeMetamodel

  公开课顺序_ {

  公共静态可变属性

  因为Java 6包含注释处理器,所以这种改变不需要特定的IDE支持。——IDE可以将注释委托给由编译器触发的注释处理器,并在处理过程中生成元数据模型。

  可以通过API查询元模型,API指定了动态访问持久状态元模型和持久单元托管类(托管

  类)。它还不能提供对访问ORM信息的支持,尽管它计划在将来更新。该接口由持久性提供程序实现,可以通过

  Entitymanagerfactory。getmetamodel和EntityManager.getMetamodel方法用于访问,它们返回的是。

  javax . persistence . meta model . meta model接口的实现类的商。

  金最近建议进入

  进一步重构行,将类型安全扩展到查询结果集,并向CriteriaQuery和Query添加类型参数。这允许开发人员直接访问类型安全的现实。

  体或封装,但是对于基于JPA 1.0的项目,这将导致编译器警告,因为javax.persistence.Query当前没有这个类型参数。

  类型安全方法在专家组中引起了争议。JPA 2.0规范的领导者Linda DeMichiel在她的博客文章中描述了字符串和类型安全方法的比较。在这篇文章中,她是这样描述的:

  “在对基于元模型的API和基于字符串的API的优缺点进行了几次讨论后,我们[专家组]决定采用类型安全的API,但如果开发人员愿意,我们也提供基于字符串的方法的选项。”

  这两个选项的主要区别在于,基于字符串的属性名称可用于指定连接和导航中引用的属性。因此,这些查询具有与类型安全版本相同的语义,但是它们不具有相同的类型安全级别。

  JPA 2.0还支持在Java持久性应用程序中使用Bean验证[JSR]

  303]。托管类(实体、映射超类和可嵌入类)可以配置为包含Bean。

  验证约束。通过指定Java持久化应用程序将验证委托给预持久化、预

  和更新删除前实体生命周期事件的Bean验证实现。

  专家组渴望收到来自社区的反馈。如果您有任何意见,请发送至jsr-317-pfd-feedback@sun.com。

  来自:网络世界

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: