- 1、本文档共64页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JPA 全面讲解
1 JPA 批注参考
版本: 5/12/06
作为 Java 企业版 5 (Java EE 5) Enterprise Java Bean (EJB) 3.0 规范的组成部分,Java 持续性 API (JPA) 显著简化了 EJB 持续性并提供了一个对象关系映射方法,该方法使您可以采用声明方式定义如何通过一种标准的可移植方式(在 Java EE 5 应用服务器内部以及 Java 标准版 (Java SE) 5 应用程序中的 EJB 容器外部
均可使用)将 Java 对象映射到关系数据库表。
在 JPA 之前,Java EE 应用程序将持续类表示为容器管理的实体 bean。使用 JPA,您可以将任何普通的旧式 Java 对象 (POJO) 类指定为 JPA 实体:一个应使用 JPA 持续性提供程序的服务将其非临时字段持久保存到关系数据库(在 Java EE EJB 容器的内部或在简单 Java SE 应用程序中的 EJB 容器的外部)的 Java 对象。 使用 JPA 时,可以使用批注配置实体的 JPA 行为。批注是一种使用元数据修饰 Java 源代码的简单表达方法,它编译为相应的 Java 类文件,以便在运行时由 JPA
持续性提供程序解释以管理 JPA 行为。
例如,要将 Java 类指定为 JPA 实体,请使用 @Entity 批注,如下所示:
@Entity
public class Employee implements Serializable {
...
}
您可以有选择地使用批注来修饰实体类以覆盖默认值。这称作按异常进行配置
(configuration by exception)。
本参考广泛引用了 JSR-220 Enterprise JavaBean 版本 3.0 Java 持续性 API 规范,以按类别汇总批注信息(请参阅表 1-1),并解释了何时以及如何使用这些批
注来自定义 JPA 行为,以满足应用程序的需要。
有关详细信息,请参阅:
?
? 批注索引 完整的 JPA 批注 Javadoc
表 1-1 按类别划分的 JPA 批注
@AssociationOverride
默认情况下,JPA 持续性提供程序自动假设子类继承超类中定义的持久属性及其关
联映射。
如果继承的列定义对实体不正确(例如,如果继承的列名与已经存在的数据模型不兼容或作为数据库中的列名无效),请使用 @AssociationOverride 批注自定义从 @MappedSuperclass 或 @Embeddable 继承的 @OneToOne 或 @ManyToOne 映射,以
更改与字段或属性关联的 @JoinColumn。
如果有多个要进行的 @AssociationOverride 更改,则必须使用
@AssociationOverrides。
要自定义基本映射以更改它的 @Column,请使用 @AttributeOverride。 表 1-4 列出了此批注的属性。有关更多详细信息,请参阅 API。
表 1-2 @AssociationOverride 属性
示例 1-4 显示了示例 1-5 中的实体扩展的 @MappedSuperclass。示例 1-5 显示了
如何在实体子类中使用 @AssociationOverride 覆盖 @MappedSuperclass Employee 中定义(默认情况下)的 @JoinColumn 以便关联到 Address。
如果使用 @AssociationOverride,则 Employee 表包含以下列:
?
?
?
? ID VERSION ADDR_ID WAGE
如果不使用 @AssociationOverride,则 Employee 表包含以下列:
?
?
?
? ID VERSION ADDRESS WAGE
示例 1-1 @MappedSuperclass
@MappedSuperclass
public class Employee {
@Id protected Integer id;
@Version protected Integer version;
@ManyToOne protected Address address;
...
}
示例 1-2 @AssociationOverride
@Entity@AssociationOverride(name=quot;addressquot;,
joinColumns=@JoinColumn(name=quot;ADDR_IDquot;))public class PartTimeEmployee
extends Employee { @Column(name=quot;WAGEquo
您可能关注的文档
最近下载
- 2024年时事政治题库及参考答案(100题).doc
- 2024年人教新课标小学数学知识点整理.doc
- 高中化学新教材选择必修3与旧版教材选修5对比分析.pdf VIP
- 生物人教版2024版七年级上册2.2.2 脊椎动物(鱼) 课件01.pptx VIP
- ISO27001信息安全管理体系信息安全风险评估表.pdf
- 宣讲“铸牢中华民族共同体意识”专题课件.ppt VIP
- NB_T 33018-2015 电动汽车充换电设施供电系统技术规范.pdf VIP
- 《教育家精神》全文课件.ppt
- 国开电大学习网国家安全教育(山东大学(威海))答案.pdf
- 学堂在线昆虫文化(安农)期末考试答案(65题卷).docx
文档评论(0)