ImageVerifierCode 换一换
格式:DOCX , 页数:108 ,大小:57.86KB ,
资源ID:20625164      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20625164.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JPA帮助文档Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JPA帮助文档Word文档格式.docx

1、数据库模式属性默认情况下,JPA 持续性提供程序假设实体名称对应于同名的数据库表,且实体的数据成员名称对应于同名的数据库列。使用这些批注覆盖此默认行为,并微调对象模型与数据模型之间的关系。TableSecondaryTableSecondaryTablesColumnJoinColumnJoinColumnsPrimaryKeyJoinColumnPrimaryKeyJoinColumnsJoinTableUniqueConstraint身份默认情况下,JPA 持续性提供程序假设每个实体必须至少有一个用作主键的字段或属性。使用这些批注指定以下项之一: 一个 Id 多个 Id 和一个 IdCla

2、ss 一个 EmbeddedId还可以使用这些批注微调数据库维护实体身份的方式。IdIdClassEmbeddedIdGeneratedValueSequenceGeneratorTableGenerator直接映射默认情况下,JPA 持续性提供程序为大多数 Java 基元类型、基元类型的包装程序以及 enums 自动配置一个 Basic 映射。使用这些批注微调数据库实现这些映射的方式。BasicEnumeratedTemporalLobTransient关系映射JPA 持续性提供程序要求您显式映射关系。使用这些批注指定实体关系的类型和特征,以微调数据库实现这些关系的方式。OneToOneMa

3、nyToOneOneToManyManyToManyMapKeyOrderBy组合默认情况下,JPA 持续性提供程序假设每个实体均映射到它自己的表。使用这些批注覆盖其他实体拥有的此种实体行为。EmbeddableEmbeddedAttributeOverrideAttributeOverridesAssociationOverrideAssociationOverrides继承默认情况下,JPA 持续性提供程序假设所有持久字段均由一个实体类定义。如果实体类继承了一个或多个超类中的某些或所有持续字段,则使用这些批注。InheritanceDiscriminatorColumnDiscrimina

4、torValueMappedSuperclass锁定默认情况下,JPA 持续性提供程序假设应用程序负责数据一致性。使用此批注启用 JPA 管理的乐观锁定(推荐使用)。Version生命周期回调事件默认情况下,JPA 持续性提供程序处理所有持续性操作。如果您要在实体生命周期内随时调用自定义逻辑,请使用这些批注将实体方法与 JPA 生命周期事件关联。图 1-1 演示了这些生命周期事件之间的关系。PrePersistPostPersistPreRemovePostRemovePreUpdatePostUpdatePostLoadEntityListenersExcludeDefaultListene

5、rsExcludeSuperclassListeners实体管理器在使用 JPA 持续性提供程序的应用程序中,您可以使用 EntityManager 实例执行所有持续性操作(创建、读取、更新和删除)。使用这些批注将实体与实体管理器关联并自定义实体管理器的环境。PersistenceUnitPersistenceUnitsPersistenceContextPersistenceContextsPersistenceProperty查询在使用 JPA 持续性提供程序的应用程序中,可以使用实体管理器动态创建和执行查询,也可以预定义查询并在运行时按名称执行它们。使用这些批注预定义查询并管理它们的结果

6、集。NamedQueryNamedQueriesNamedNativeQueryNamedNativeQueriesQueryHintColumnResultEntityResultFieldResultSqlResultSetMappingSqlResultSetMappings默认情况下,JPA 持续性提供程序自动假设子类继承超类中定义的持久属性及其关联映射。如果继承的列定义对实体不正确(例如,如果继承的列名与已经存在的数据模型不兼容或作为数据库中的列名无效),请使用 AssociationOverride 批注自定义从 MappedSuperclass 或 Embeddable 继承的

7、OneToOne 或 ManyToOne 映射,以更改与字段或属性关联的 JoinColumn。如果有多个要进行的 AssociationOverride 更改,则必须使用 AssociationOverrides。要自定义基本映射以更改它的 Column,请使用 AttributeOverride。表 1-4 列出了此批注的属性。有关更多详细信息,请参阅 API。表 1-2 AssociationOverride 属性属性必需joinColumns要指定映射到持久属性的连接列,请将 joinColums 设置为 JoinColumn 实例的数组(请参阅 JoinColumn)。映射类型将与可

8、嵌套类或映射的超类中定义的类型相同。name如果使用了基于属性的访问,则映射的为嵌入对象中的属性名称,如果使用了基于字段的访问,则映射的为字段名称。示例 1-4 显示了示例 1-5 中的实体扩展的 MappedSuperclass。示例 1-5 显示了如何在实体子类中使用 AssociationOverride 覆盖 MappedSuperclass Employee 中定义(默认情况下)的 JoinColumn 以便关联到 Address。如果使用 AssociationOverride,则 Employee 表包含以下列: ID VERSION ADDR_ID WAGE如果不使用 Asso

9、ciationOverride,则 Employee 表包含以下列: ADDRESS示例 1-1 MappedSuperclasspublic class Employee Id protected Integer id;Version protected Integer version;ManyToOne protected Address address;示例 1-2 AssociationOverrideEntityAssociationOverride(name=address, joinColumns=JoinColumn(name=ADDR_ID)public class Part

10、TimeEmployee extends Employee Column(name=WAGE) protected Float hourlyWage;如果需要指定多个 AssociationOverride,则必需使用一个 AssociationOverrides 批注指定所有关联覆盖。表 1-5 列出了此批注的属性。表 1-3 AssociationOverrides 属性value要指定两个或更多覆盖,请将 value 设置为 AssociationOverride 实例的数组(请参阅 AssociationOverride)。示例 1-6 显示了如何使用此批注指定两个关联覆盖。示例 1-

11、3 AssociationOverridesAssociationOverrides(AssociationOverride(name=, joinColumn=Column(name=),idPTID)public class PartTimeEmployee extends Employee Column(name=)protected Float hourlyWage;默认情况下,JPA 持续性提供程序自动假设子类继承超类中定义的持久属性及其基本映射。如果针对实体继承的列定义不正确,请使用 AttributeOverride 批注自定义一个从 MappedSuperclass 或 Emb

12、eddable 继承的基本映射以更改与字段或属性关联的 Column。(例如,如果继承的列名与事先存在的数据模型不兼容,或者作为数据库中的列名无效)。如果有多个要进行的 AttributeOverride 更改,则必须使用 AttributeOverrides。要自定义关联映射以更改它的 JoinColumn,请使用 AssociationOverride。表 1-4 AttributeOverride 属性column映射到持久属性的 Column。映射类型将与可嵌套类或映射超类中定义的类型相同。示例 1-5 显示了如何使用实体子类中的 AttributeOverride 覆盖 Mapped

13、Superclass Employee 中定义(默认情况下)的 Column,以便基本映射到 Address。如果使用 AttributeOverride,则 Employee 表包含以下列: ADDR_STRING如果不使用 AttributeOverride,则 Employee 表包含以下列:示例 1-4 MappedSuperclassprotected String address; . 示例 1-5 AttributeOverrideAttributeOverride(name=, column=Column(name=ADDR_STRING如果需要指定多个 AttributeOv

14、erride,则必需使用一个 AttributeOverrides 批注指定所有属性覆盖。表 1-5 AttributeOverrides 属性要指定两个或更多属性覆盖,请将 value 设置为 AttributeOverride 实例的数组(请参阅 AttributeOverride)。示例 1-6 显示了如何使用此批注指定两个属性覆盖。示例 1-6 AttributeOverridesAttributeOverrides(public PartTimeEmployee() public Float getHourlyWage() public void setHourlyWage(Floa

15、t wage) 默认情况下,JPA 持续性提供程序为大多数 Java 基元类型、基元类型的包装程序以及枚举自动配置一个 Basic 映射。使用 Basic 批注: 将获取类型配置为 LAZY 如果空值不适合于应用程序,则将映射配置为禁止空值(针对非基元类型)表 1-6 列出了此批注的属性。表 1-6 Basic 属性fetch默认值:FetchType.EAGER。默认情况下,JPA 持续性提供程序使用获取类型 EAGER:这将要求持续性提供程序运行时必须迫切获取数据。如果这不适合于应用程序或特定的持久字段,请将 fetch 设置为 FetchType.LAZY:这将提示持续性提供程序在首次访

16、问数据(如果可以)时应不急于获取数据。optionaltrue。默认情况下,JPA 持续性提供程序假设所有(非基元)字段和属性的值可以为空。如果这并不适合于您的应用程序,请将 optional 设置为 false。示例 1-7 显示了如何使用此批注为基本映射指定获取类型 LAZY。示例 1-7 BasicBasic(fetch=LAZY)protected String getName() return name;默认情况下,JPA 持续性提供程序假设每个实体的持久字段存储在其名称与持久字段的名称相匹配的数据库表列中。使用 Column 批注: 将持久字段与其他名称关联(如果默认列名难于处理、

17、与事先存在的数据模型不兼容或作为数据库中的列名无效) 将持久字段与辅助表中的列关联(请参阅 SecondaryTable) 微调数据库中列的特征表 1-7 列出了此批注的属性。表 1-7 Column 属性columnDefinition空 String。默认情况下,JPA 使用最少量 SQL 创建一个数据库表列。如果需要使用更多指定选项创建的列,请将 columnDefinition 设置为在针对列生成 DDL 时希望 JPA 使用的 SQL 片断。注意:捕获批注中的 DDL 信息时,某些 JPA 持续性提供程序可以在生成数据库模式时使用此 DDL。例如,请参阅“用于 Java2DB 模式生

18、成的 TopLink JPA 扩展”。insertable默认情况下,JPA 持续性提供程序假设所有列始终包含在 SQL INSERT 语句中。如果该列不应包含在这些语句中,请将 insertable 设置为 false。length 255默认情况下,JPA 持续性提供程序假设所有列在用于保存 String 值时的最大长度为 255 个字符。如果该列不适合于您的应用程序或数据库,请将 length 设置为适合于您的数据库列的 int 值。JPA 持续性提供程序假设实体的每个持久字段都存储在其名称与持久字段或属性的名称相匹配的数据库表列中。要指定其他列名,请将 name 设置为所需的 Stri

19、ng 列名。nullable默认情况下,JPA 持续性提供程序假设允许所有列包含空值。如果不允许该列包含空值,请将 nullable 设置为 false。precision 0.默认情况下,JPA 持续性提供程序假设所有列在用于保存十进制(精确数字)值时的精度为 0。如果该精度不适合于您的应用程序或数据库,请将 precision 设置为相应的 int 精度。scale默认情况下,JPA 持续性提供程序假设所有列在用于保存十进制(精确数字)值时的伸缩度为 0。如果该伸缩度不适合于您的应用程序或数据库,请将 scale 设置为相应的 int 精度。tableJPA 持续性提供程序假设实体的所有持

20、久字段都存储到一个其名称为实体名称的数据库表中(请参阅 Table)。如果该列与辅助表关联(请参阅 SecondaryTable),请将 name 设置为相应辅助表名称的 String 名称,如示例 1-8 所示。uniquefalse。默认情况下,JPA 持续性提供程序假设允许所有列包含重复值。如果不允许该列包含重复值,请将 unique 设置为 true。设置为 true 时,这相当于在表级别使用 UniqueConstraint。updatable默认情况下,JPA 持续性提供程序假设列始终包含在 SQL UPDATE 语句中。如果该列不应包含在这些语句中,请将 updatable 设置

21、为 false。示例 1-8 显示了如何使用此批注使 JPA 将 empId 持久保存到辅助表 EMP_HR 中的列 EMP_NUM。默认情况下,JPA 将 empName 持久保存到主表 Employee 中的列 empName。示例 1-8 ColumnSecondaryTable(name=EMP_HREMP_NUM, table=private Long empId;private String empName;执行 NamedNativeQuery 时,它可以返回实体(包括不同类型的实体)、标量值或实体和标量值的组合。使用 ColumnResult 批注返回标量值。标量类型由您在 C

22、olumnResult 中标识的列类型确定。有关详细信息,另请参阅 EntityResult、FieldResult 和 SqlResultSetMapping。表 1-8 列出了此批注的属性。表 1-8 ColumnResult 属性在原生 SQL 查询的 SELECT 语句中将 name 设置为列名的 String 等效形式。如果在 SELECT 中使用列别名(AS 语句),则将 name 设置为列别名。示例 1-9 显示了如何使用此批注将 Item(请参阅示例 1-10)标量 name 包含在结果列表(请参阅示例 1-11)中。在该示例中,结果列表将为 Object 数组的 List,如:Order, Shoes

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1