1.多对多关系
表product,category,category_has_product
@ManyToMany(mappedBy="products",cascade={CascadeType.PERSIST})
private List<Category> categorys = Lists.newArrayList();
@ManyToMany(fetch=FetchType.LAZY,cascade=CascadeType.PERSIST)
@JoinTable(name="CATEGORY_HAS_PRODUCT",
joinColumns={@JoinColumn(name="category_id")},
inverseJoinColumns={@JoinColumn(name="product_id")}
)
private List<Product> products = Lists.newArrayList();
1 单向一对多
主表 TC_PICK_RESULT_GROUP
明细表 TC_PICK_RESULT_STAFF
只需要在主表类维护一个子表集合
private Set<TcPickResultStaff> groupStaffs = new LinkedHashSet<TcPickResultStaff>();
@OneToMany(targetEntity=TcPickResultStaff.class,cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
@JoinColumn(name="RESULT_GROUP_ID")
public Set<TcPickResultStaff> getGroupStaffs() {
return groupStaffs;
}
JoinColumn 标识子表进行左连接的外键数据库字段
引用
JPA实体关系映射之注释
下面是我总结的JPA实体关系映射的注释写法:
1.单向 一对一
@OneToMany(cascade = {CascadeType.ALL})
@JoinColumn(name = "...")
@JoinColumn注释的是保存表与表关系的字段.
2.双向 一对一
(1)
@OneToOne
@JoinColumn(name = "...")
@JoinColumn注释的是保存表与表关系的字段.
(2)
@OneToOne(mapedBy = "...")
mappedBy属性来指明所映射的实体关系,它的值为所关联实体中该属性的名称.
4.单向一对多
@OneToMany
@JoinColumn(name = "...")
@JoinColumn注释的是保存表与表关系的字段.
5.双向一对多
(一对多)
@OneToMany(mapedBy = "...")
mappedBy属性来指明所映射的实体关系,它的值为所关联实体中该属性的名称.
(多对一)
@ManyToOne
@JoinColumn(name = "...")
@JoinColumn注释的是保存表与表关系的字段.
7.单向多对多
设置双向多对多的(1)一边就可以了
@ManyToMany(targetManager = ContactEO.class, cascade = {CascadeType.ALL})
@JoinTable(name = "tb_customer_contact",
joinColumns = {
@JoinColumn(name = "cumtomer_id")
},
inverseJoinColumns = {
@JoinColumn(name = "contact_id")
})
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注释的是保存表与表关系的字段.
(2)
在联系人(ContactEO)实体类中这样配置:
@ManyToMany(cascade = {CascadeType.ALL }, mappedBy = "contacts")
mappedBy属性来指明所映射的实体关系,它的值为所关联实体中该属性的名称.
分享到:
相关推荐
以下是关于Hibernate关系注解的详细说明: 1. **一对一外键关联映射(单向)** 使用`@OneToOne`注解实现一对一关系,其中一方通过外键引用另一方。`@JoinColumn`用于指定外键的名称,`unique=true`确保外键的唯一...
在Java的持久化框架Hibernate中,注解是用于简化对象关系映射(ORM)的一种方式。本篇文章将详细探讨在Hibernate中如何使用注解来处理各种关联关系,特别是`mappedBy`属性的用法。 首先,`@OneToMany`注解用于表示...
在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。 Hibernate 3引入了注解支持,使得开发人员无需XML配置文件即可进行对象持久化,提高了开发效率。本文将深入探讨Hibernate...
#### 四、关联关系注解 - **@OneToOne**:表示两个实体之间的一对一关联关系。`cascade`属性可以指定级联操作,例如`CascadeType.ALL`表示所有操作都会被级联执行。 - **@ManyToOne**:表示多对一的关联关系,用于...
在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发视频教程 04”中,我们将深入探讨Java企业级开发中的三大核心技术——Spring、Spring MVC和Hibernate的集成与应用,尤其是通过注解实现的简化配置。...
本文档将详细介绍 Hibernate 中的注解使用方法,这些注解主要用于配置对象与数据库之间的映射关系。 #### 二、核心注解介绍 ##### 1. @Entity - **作用**:标记一个类为实体类,表示它可以被持久化到数据库中。 - ...
开发者可能会在该文件中找到一个简单的Struts2 Action,一个带有注解的Spring Bean,以及一个用Hibernate注解配置的实体类。通过分析和运行这个`test`文件,可以更好地理解三大框架如何协同工作,以及注解如何简化...
在Java Persistence API (JPA) 和 Hibernate ORM 框架中,继承注解是用于处理对象关系映射(ORM)中的类继承结构的关键概念。这些注解帮助开发者将数据库表的设计与面向对象的代码结构相匹配,使得在复杂的业务场景...
在`Hibernate`中,我们还可以使用注解来处理关联关系,如`@ManyToOne`, `@OneToMany`, `@OneToOne`和`@ManyToMany`,它们分别对应一对一、一对多、多对一和多对多的关系。例如,一个用户可以有多个订单,那么在订单...
本教程将深入探讨如何在Hibernate中使用注解来实现实体类的配置,特别是关注一对多和多对一的关系映射。 **一、Hibernate注解基础** 在Hibernate 3.2之后,引入了注解支持,使得开发者不再需要XML配置文件来定义...
在这个“基于注解的关联关系Hibernate”的主题中,我们将深入探讨如何使用Hibernate的注解来配置不同类型的关联关系,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-...
SpringMVC作为Spring的一部分,专门用于处理Web层的请求,而Hibernate则是一个强大的对象关系映射(ORM)框架,简化了数据库操作。下面我们将深入探讨"非注解SpringMVC+Spring+Hibernate入门实例"中的关键知识点。 ...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第12部分,将帮助开发者掌握如何在Java Web项目中高效地集成这三个核心框架,实现松耦合、可...
Hibernate 注解映射是 Hibernate 框架中的一种映射方式,它使用 Java 注解来描述实体类和数据库表之间的映射关系,提高开发效率。 一、 环境搭建和基本映射 在使用 Hibernate 注解映射之前,需要添加相关的 jar 包...
本文档将深入探讨Hibernate注解的使用,帮助开发者更好地理解和利用这些注解来实现对象关系映射(ORM)。 一、Hibernate注解基础 Hibernate注解是一种元数据方式,用于在Java类和属性上声明数据库映射信息,从而...
4. **关联关系注解**: - `@OneToOne`:一对一关联,可设置`mappedBy`属性表示被关联方。 - `@ManyToOne`:多对一关联,通常与`@JoinColumn`结合使用。 - `@OneToMany`:一对多关联,可通过`mappedBy`指定被关联...
在Java的ORM框架Hibernate中,注解是一种强大的工具,它允许开发者无需XML配置就能实现对象关系映射。本文主要总结了Hibernate中常见的注解用法,涵盖了类级别和属性级别的注解,以及与主键和非主键相关的注解。 1....
在Java的持久化框架Hibernate中,注解是用于对象关系映射(ORM)的重要工具,它简化了传统XML配置的方式,使代码更加简洁、易读。本篇文章将深入探讨Hibernate中注解的一对多、多对多和一对一关系映射。 ### 一对多...
本实例"spring-hibernate注解配置源码"旨在展示如何在不使用XML配置的情况下,通过注解的方式整合Struts2、Spring和Hibernate,创建一个完整的MVC(模型-视图-控制器)架构的应用。下面将详细介绍这个过程中的关键...
Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了数据库操作,使得开发者可以像操作对象一样操作数据库。通过Hibernate,我们可以定义实体类,映射到数据库表,然后使用HQL(Hibernate查询语言)进行...