`
neil-jh
  • 浏览: 145532 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
阅读更多

DiscriminatorColumn

DiscriminatorColumn定义在使用SINGLE_TABLE或JOINED继承策略的表中区别不继承层次的列。

元数据属性说明:

  • name:column的名字。默认值为TYPE。
  • columnDefinition:生成DDL的sql片断。
  • length:String类型的column的长度,其他类型使用默认值10。

下面的代码定义了一个列名为DISC,长度为20的String类型的区别列。

                
    @Entity
    @Table(name="CUST")
    @Inheritance(strategy=SINGLE_TABLE,
        discriminatorType=STRING,
       discriminatorValue="CUSTOMER")
    @DiscriminatorColumn(name="DISC", length=20)
    public class Customer { ... }

@Embeddable

默认情况下,JPA 持续性提供程序假设每个实体均持久保存到它自己的数据库表。
使用 @Embeddable 批注指定一个类,该类的实例存储为拥有实体的固有部分并共享该实体的身份。嵌入对象的每个持久属性或字段都将映射到实体的数据库表。
此批注没有属性。有关更多详细信息,请参阅
API
示例 1-16 显示了如何使用此批注指定:类 EmploymentPeriod 在用作批注为 @Embedded 的持久字段的类型时可以嵌套到实体中(请参阅示例 1-17 <!----><!---->
<!---->

@Embedded


默认情况下,JPA 持续性提供程序假设每个实体均持久保存到它自己的数据库表。
使用 @Embedded 批注指定一个持久字段,该字段的
@Embeddable 类型可以存储为拥有实体的固有部分,并共享该实体的身份。嵌入对象的每个持久属性或字段均映射到拥有实体的数据库表。
可以结合使用 @Embedded@Embeddable 以建立严格所有权关系的模型,以便在删除了拥有对象的情况下还将删除被拥有的对象。
嵌入的对象不应映射到多个表。
默认情况下,@Embeddable 类中指定的列定义(请参阅 @Column)适用于 @Embedded 类。如果要覆盖这些列定义,请使用 @AttributeOverride
此批注没有属性。有关更多详细信息,请参阅 API
示例 1-17 显示了如何使用该批注指定:@EmbeddableEmploymentPeriod(请参阅示例 1-16)可以使用指定的属性覆盖(请参阅 @AttributeOverride)嵌入到实体类中。如果不需要属性覆盖,则可以完全忽略 @Embedded 批注:JPA 持续性提供程序将推断出 EmploymentPeriod 是从它的 @Embeddable 批注进行嵌套。 <!---->
<!---->
<!---->

@EmbeddedId


使用 @EmbeddedId 批注指定一个由实体拥有的可嵌入复合主键类(通常由两个或更多基元类型或 JDK 对象类型组成)。从原有数据库映射时(此时数据库键由多列组成),通常将出现复合主键。
复合主键类具有下列特征:
  •    
    它是一个普通的旧式 Java 对象 (POJO) 类。    
  •    
    它必须为 public,并且必须有一个 public 无参数构造函数。    
  •    
    如果使用基于属性的访问,则主键类的属性必须为 public 或 protected。    
  •    
    它必须是可序列化的。    
  •    
    它必须定义 equalshashCode 方法。    
    这些方法的值相等性的语义必须与键映射到的数据库类型的数据库相等性一致。    

或者,您可以使复合主键类成为非嵌入类(请参阅
@IdClass)。
此批注没有属性。有关更多详细信息,请参阅 API
示例 1-18 显示了一个批注为 @Embeddable 的典型复合主键类。示例1-19 显示了如何使用可嵌入的复合主键类(使用 @EmbeddedId 批注)配置一个实体。 <!----> <!---->
<!----> <!---->
<!---->

@EntityListeners


可以使用生命周期批注(请参阅
生命周期事件批注)指定实体中的方法,这些方法在指定的生命周期事件发生时执行您的逻辑。
使用 @EntityListeners 批注将一个或多个实体监听程序类与 @Entity@MappedSuperclass 关联,条件是您需要在指定的生命周期事件发生时执行逻辑,以及:
  •    
    不希望在实体 API 中公开生命周期监听程序方法。    
  •    
    要在不同的实体类型之间共享生命周期监听程序逻辑。    

当实体或子类上发生生命周期事件时,JPA 持续性提供程序将按监听程序定义的顺序通知每个实体监听程序,并调用使用相应的生命周期事件类型进行批注的实体监听程序方法(如果有)。
实体监听程序类具有以下特征:
  •    
    它是一个普通的旧式 Java 对象 (POJO) 类    
  •    
    它有一个或多个具有以下签名的回调方法:    
    public void <MethodName>(Object)
    
    
       
    可以指定参数类型 Object,或实体监听程序将与其关联的实体类的类型。    
  •    
    它用一个或多个生命周期事件批注对每个回调方法进行批注。    
    一个生命周期事件只能与一个回调监听程序方法关联,但某个给定的回调监听程序方法可以与多个生命周期事件关联。
分享到:
评论
1 楼 yehuijia 2008-12-30  
谢谢...
帮了很大的忙...

相关推荐

    JPA标注推荐圈子: Database圈子

    相关文章: JPA标注 EJB的资料辅导(7) EJB的资料辅导(6) 推荐圈子: Database圈子 更多相关推荐 1.@Entity

    JPA 标注 JPA标签手册

    这是JPA标签配置手册,从ORACLE官方得到的资料,里面对JPA所有的标签都进行详细的说明。 Index of Annotations • A o @AssociationOverride o @AssociationOverrides o @AttributeOverride o @AttributeOverrides ...

    jpa标注中文文档html格式

    jpa的标注文档,中文,heml格式,官方文档,解压后一个html页,一个文件夹。

    JPA标注说明文档(带文档结构整理)

    作为 Java 企业版 5 (Java EE 5) Enterprise Java Bean (EJB) 3.0 规范的组成部分,Java 持续性 API (JPA) 显著简化了 EJB 持续性并提供了一个对象关系映射方法,该方法使您可以采用声明方式定义如何通过一种标准的...

    jpa常用标注

    jpa 基础 常用 标注 注解,一些常用注解 的说明,更好的jpa入门。

    JPA注解总结

    JPA注解详解 hibernate 标注 适合各种数据库 Hibernate+JPA注解教程

    JAVA程序开发大全---上半部分

    13.3.2 JPA标注配置视图 239 13.3.3 JPA代码编辑辅助功能 240 13.4 Spring整合JPA框架 240 13.4.1 向项目添加Spring框架功能支持 241 13.4.2 反向工程生成JPA 实体类和Spring DAO类 242 13.4.3 创建测试类 243 13.5 ...

    JPA注解说明 详解

    JPA注解 详解 1、@Entity(name="EntityName") 必须,name为可选,对应数据库中一的个表 2、@Table(name="",catalog="",schema="") 可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表...

    Pro JPA 2 Mastering the Java Persistence API free down

    JPA2.0 加入了大量必须的 ORM 映射增强特性,包括:支持通过使用 @ElementCollection 标注来增强 collections, maps 和 lists( 这里不是指实体之间的关联关系 ) 集合,支持 map 的单向 one-to-many 关联 (JPA1.0...

    借助RationalSoftwareArchitect实现模型驱动的服务开发

    本文通过对一个具体案例的分析,介绍了从如何从UML模型生成JPA标注的JavaBean源代码;如何配置编译环境对JavaBean类文件实现JPA增强;如何从UML模型生成业务对象模型;如何在服务实现中将业务数

    ssh项目实战

    1.下载完该项目后,请根据javabean里面的实体在oracle中创建相应的表 2.该项目采用ssh框架,并且采用java的jpa标注,映射数据库表。 3.这是一个完整的项目,其所依赖的所有jar包已经添加到项目中lib文件夹下

    Spring Data JPA笔记.zip

    JPA 的全称是 Java Persistence API, 即 Java 持久化 API,是 SUN 公司推出的一套基于 ORM 的规范,内部是由一系列的接口和抽象类构成。JPA 的查询语言是面向对象而非面向... 本文档包含了JPA的课件笔记与学习标注。

    JPA学习笔记(二)——JPA 注解

    标注在实体类上,表示此类对应一个数据表。 1.2 @Table 与表对应,一般要与 @Entity 一起写。 @Table(name = "JPA_CUSTOMER") // 指定表名为 JPA_CUSTOMER 加 @Table 注解时,表名即为类名,通常要加。 1.3 @Id ...

    开发JPA应用

    第十三章 开发JPA应用..................................... 1 13.1 介绍................................................ 2 13.1.1 JPA 简介.......................................... 2 13.1.2 MyEclipse...

    JPA注解详细解释、EJB3、 Hibernate开发

    对于pojo类中标注的详细解释 EJB3、 Hibernate开发

    地图demo-java

    该程序有6个功能,使用springboot+mybatisplus+jpa,不需要sql文件,通过jpa自动生成表。 1.经纬度查询:根据经纬度查询位置。 2.城市查询:根据城市名字查询该城市位置。 3.添加标注:在地图上添加一个标注,可以...

    JAVA ---JPA注解

    可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息 name:可选,表示表的名称.默认地,表名和实体名称一致,只有在不一致的情况下才需要指定表名 catalog:可选,表示Catalog名称,...

    koala.rar(Eclipse插件)

    4.DDDLib升级到4.3.6版本,JPA注解标注在字段上 5.权限子系统重构,支持细粒度控制和数据权限 6.新增组织权限集成模块,实现用户关联人员,权限关联组织机构 7.新增领域建模工具,包括在线画图,代码生成等 8.新增...

Global site tag (gtag.js) - Google Analytics