`
yangmeng_3331
  • 浏览: 88053 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

JPA 实体关系注解

阅读更多
1.单向一对一
@OneToMany(cascade = {CascadeType.ALL})
@JoinColumn(name = "...")
@JoinColumn注释的是保存表与表关系的字段.
2.双向一对一(1)
@OneToOne
@JoinColumn(name = "...")
@JoinColumn注释的是保存表与表关系的字段.
3.双向一对一(2)
@OneToOne(mapedBy = "...")
mappedBy属性来指明所映射的实体关系,它的值为所关联实体中该属性的名称.
4.单向一对多
@OneToMany
@JoinColumn(name = "...")
@JoinColumn注释的是保存表与表关系的字段.
5.双向一对多(一对多)
@OneToMany(mapedBy = "...")
@OrderBy("block,blockOrder")   // 排序 前后,升序 (AbcLayoutmodule 内字段)
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "layout")
public List<AbcLayoutmodule> getLayoutmoduleList() {
        return layoutmoduleList;
    }
fatch: 可选择项包括:FetchType.EAGER 和FetchType.LAZY。前者表示关系类在主类加载的时候 同时加载;后者表示关系类在被访问时才加载,默认值是FetchType. LAZY。
cascade: CascadeType[]类型。该属性定义类和类之间的级联关系。定义的级联关系将被容器视为对当前类对象及其关联类对象采取相同的操作,      * 而且这种关系是递归调用的。举个例子:Order 和OrderItem有级联关系,那么删除Order 时将同时删除它所对应的OrderItem对象。      * 而如果OrderItem还和其他的对象之间有级联关系,那么这样的操作会一直递归执行下去。
cascade的值只能从CascadeType.PERSIST(级联新建)、  
CascadeType.REMOVE(级联删除)CascadeType.REFRESH(级联刷新)CascadeType.MERGE(级联更新)中选择一个或多个。    
还有一个选择是使用CascadeType.ALL,表示选择全部四项。
mappedBy: 定义类之间的双向关系。如果类之间是单向关系,不需要提供定义,如果类和类之间形成双向关系,我们就需要使用这个属性进行定义, 否则可能引起数据一致性的问题。
mappedBy: 属性来指明所映射的实体关系,它的值为所关联实体中该属性的名称.
6.双向一对多(多对一)
@ManyToOne
@JoinColumn(name = "...")
@JoinColumn注释的是保存表与表关系的字段.
@JoinColumn(name = "LAYOUT_ID")
7.单向多对多
还没有遇到过.
8.双向多对多(1)
如客户(CustomerEO)实体与联系人(ContactEO)实体是双向多对多的关系.
则在客户(CustomerEO)实体类中这样配置:
@ManyToMany(targetManager = ContactEO.class, cascade = {CascadeType.ALL})
@JoinTable(name = "tb_customer_contact",
           joinColumns = {
               @JoinColumn(name = "cumtomer_id")
           },
           inverseJoinColumns = {
               @JoinColumn(name = "contact_id")
           })
@JoinTable用于注释关联的表.
joinColumns属性表示,在保存关系的表中,所保存关联关系的外键的字段,并配合@JoinColumn标记使用.
例如以下的映射配置,表示字段customer_id为外键关联到customer表中的id字段.
           joinColumns = {
               @JoinColumn(name = "cumtomer_id", referencedColumnName = "id")
           },
inverseJoinColumns属性与joinColumns属性类似,它保存的是保存关系的另一个外键字段.
例如以下的映射配置,表示字段address_id为外键关联到address表中的id字段.
           inverseJoinColumns = {
               @JoinColumn(name = "contact_id", referencedColumnName = "id"))
           }
@JoinColumn注释的是保存表与表关系的字段.
9.双向多对多(2)
在联系人(ContactEO)实体类中这样配置:
@ManyToMany(cascade = {CascadeType.ALL }, mappedBy = "contacts")
mappedBy属性来指明所映射的实体关系,它的值为所关联实体中该属性的名称.
10.枚举类型
@Enumerated(EnumType.STRING)
@Column(name = "POSITION")
public GroupPosition getPosition() {    //GroupPosition  为枚举类
        return position;
    }
原文: http://hi.baidu.com/willrom/blog/item/775c243fd65cbcff54e723a7.html
分享到:
评论

相关推荐

    EJB3.0-JPA实体的注解规范以及Hibernate特有的扩展

    web开发的技术文档 集成了不少web开发框架的API 方便查阅

    openjpa实体标识的生成策略

    JPA 充分利用了注释(Annotation)和对象/关系映射,为数据持久化提供了更简单、易用的编程方式。OpenJPA 是 Apache 组织提供的 JPA 标准实现。本文是 使用 Apache OpenJPA 开发 EJB 3.0 应用系列 的第五部分,介绍...

    JPA 批注参考 EJB3.0实体Bean注解详细解析

    在JPA 之前,Java EE 应用程序将持续类表示为容器管理的实体bean 。使用JPA,您可以将 任何普通的旧式Java 对象(POJO) 类指定为JPA 实体:一个应使用JPA 持续性提供程序的 服务将其非临时字段持久保存到关系数据库...

    JPA 注解参考文档

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。 JPA的总体思想和现有Hibernate、TopLink、...

    JPA注解参考文档

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。 JPA的总体思想和现有Hibernate、TopLink、...

    13_jpa多对多双向关联实体定义与注解

    13_传智播客JPA详解_JPA中的多对多双向关联实体定义与注解设置.rar

    JPA和Hibernate的关系

    JPA和Hibernate的关系,JPA:Java Persistence APIJPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

    Myeclipse自动生成注解实体类O---JPA方式

    Myeclipse通过jpa方式把数据库表自动生成注解类型的实体类,有详细的图形介绍过程,很详细。

    Excel生成Java 带JPA注解的实体类

    根据Excel模板生成Java JPA实体,使用POI读取Excel【支持2003(xls)、2007(xlsx)】。

    JPA详解视频教程 第13讲 JPA中的多对多双向关联实体定义与注解设置.avi

    JPA用于整合现有的ORM技术,可以简化现有Java EE和Java SE应用对象持久化的开发工作,实现ORM的统一。JPA详解视频教程 第13讲 JPA中的多对多双向关联实体定义与注解设置.avi

    13_JPA详解_JPA中的多对多双向关联实体定义与注解设置.zip

    13_JPA详解_JPA中的多对多双向关联实体定义与注解设置.zip 13_JPA详解_JPA中的多对多双向关联实体定义与注解设置.zip

    JPA注解说明 详解

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

    Eclipse下如何配置JPA生成数据库表对应的已注解实体类(图文详解)

    Eclipse下配置JPA生成数据库表对应的已注解实体类(图文详解),自己亲自配置成功后截图讲解,通过数据库中的表直接生成已经注解好的实体类,很神奇...

    spring3.0 mvc+hibernate3.6 +jpa 注解实例

    注解新实例。版本:spring3.0 hibernate3.0 jdk1.6 实例下载后只需改下数据库配置和对应的实体就可以正常运行了~~

    JPA注解详解

    JPA注解详解 默认情况下,JPA 持续性提供程序假设实体的所有持久字段均存储到一个名称为实体名称的数据库表中(请参阅 @Entity )。 在以下条件下,使用 @Table 批注指定与实体关联的主表:

    idea配置数据库,反向生成实体类demo,支持lombok,swagger2注解

    idea配置数据库,反向生成实体类demo,支持lombok,swagger2注解

    JPA学习中文文档

    RM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中; JPA 的API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的...

    Eclipse中反向生成hibernate实体类+jpa注释

    本资源详细描述了Eclipse中反向生成hibernate实体类+jpa注释的详细过程,是一个不错的图文教程。

    JPA 批注参考.pdf

    使用 JPA,您可以将任何普通的旧式 Java 对象 (POJO) 类指定为 JPA 实体:一个应使用 JPA 持续性提供程序的服务将其非临时字段持久保存到关系数据库(在 Java EE EJB 容器的内部或在简单 Java SE 应用程序中的...

Global site tag (gtag.js) - Google Analytics