`

HIBERNATE 关系注解

阅读更多
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 关系注解

    以下是关于Hibernate关系注解的详细说明: 1. **一对一外键关联映射(单向)** 使用`@OneToOne`注解实现一对一关系,其中一方通过外键引用另一方。`@JoinColumn`用于指定外键的名称,`unique=true`确保外键的唯一...

    Hibernate 3 注解技术讲解

    在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。 Hibernate 3引入了注解支持,使得开发人员无需XML配置文件即可进行对象持久化,提高了开发效率。本文将深入探讨Hibernate...

    Hibernate注解 关联关系映射注解.docx

    mappedBy属性用法:  该属性与关联关系的维护权相关。  该属性应放在放弃维护权一方。  该属性值为对方的关联属性,表明以后的...一个是使被注解者与DB相关,一个是使被注解者放弃与DB的关系,它们是相互矛盾的。

    spring mvc + spring + hibernate 全注解整合开发视频教程 04

    在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发视频教程 04”中,我们将深入探讨Java企业级开发中的三大核心技术——Spring、Spring MVC和Hibernate的集成与应用,尤其是通过注解实现的简化配置。...

    struts2.0 spring2.5 hibernate3.2 注解最新框架

    开发者可能会在该文件中找到一个简单的Struts2 Action,一个带有注解的Spring Bean,以及一个用Hibernate注解配置的实体类。通过分析和运行这个`test`文件,可以更好地理解三大框架如何协同工作,以及注解如何简化...

    jpa/hibernate继承注解

    在Java Persistence API (JPA) 和 Hibernate ORM 框架中,继承注解是用于处理对象关系映射(ORM)中的类继承结构的关键概念。这些注解帮助开发者将数据库表的设计与面向对象的代码结构相匹配,使得在复杂的业务场景...

    hibernate+spring注解例子

    在`Hibernate`中,我们还可以使用注解来处理关联关系,如`@ManyToOne`, `@OneToMany`, `@OneToOne`和`@ManyToMany`,它们分别对应一对一、一对多、多对一和多对多的关系。例如,一个用户可以有多个订单,那么在订单...

    hibernate实体系注解

    本教程将深入探讨如何在Hibernate中使用注解来实现实体类的配置,特别是关注一对多和多对一的关系映射。 **一、Hibernate注解基础** 在Hibernate 3.2之后,引入了注解支持,使得开发者不再需要XML配置文件来定义...

    基于注解的关联关系Hibernate

    在这个“基于注解的关联关系Hibernate”的主题中,我们将深入探讨如何使用Hibernate的注解来配置不同类型的关联关系,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-...

    非注解Springmvc+spring+hibernate 入门实例

    SpringMVC作为Spring的一部分,专门用于处理Web层的请求,而Hibernate则是一个强大的对象关系映射(ORM)框架,简化了数据库操作。下面我们将深入探讨"非注解SpringMVC+Spring+Hibernate入门实例"中的关键知识点。 ...

    spring mvc + spring + hibernate 全注解整合开发视频教程 12

    在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第12部分,将帮助开发者掌握如何在Java Web项目中高效地集成这三个核心框架,实现松耦合、可...

    Hibernate 注解映射

    Hibernate 注解映射是 Hibernate 框架中的一种映射方式,它使用 Java 注解来描述实体类和数据库表之间的映射关系,提高开发效率。 一、 环境搭建和基本映射 在使用 Hibernate 注解映射之前,需要添加相关的 jar 包...

    Hibernate 注解说明文档

    本文档将深入探讨Hibernate注解的使用,帮助开发者更好地理解和利用这些注解来实现对象关系映射(ORM)。 一、Hibernate注解基础 Hibernate注解是一种元数据方式,用于在Java类和属性上声明数据库映射信息,从而...

    Hibernate注解jar包

    4. **关联关系注解**: - `@OneToOne`:一对一关联,可设置`mappedBy`属性表示被关联方。 - `@ManyToOne`:多对一关联,通常与`@JoinColumn`结合使用。 - `@OneToMany`:一对多关联,可通过`mappedBy`指定被关联...

    Hibernate注解用法总结

    在Java的ORM框架Hibernate中,注解是一种强大的工具,它允许开发者无需XML配置就能实现对象关系映射。本文主要总结了Hibernate中常见的注解用法,涵盖了类级别和属性级别的注解,以及与主键和非主键相关的注解。 1....

    Hibernate关于注解的一对多,多对多,一对一

    在Java的持久化框架Hibernate中,注解是用于对象关系映射(ORM)的重要工具,它简化了传统XML配置的方式,使代码更加简洁、易读。本篇文章将深入探讨Hibernate中注解的一对多、多对多和一对一关系映射。 ### 一对多...

    spring-hibernate注解配置源码

    本实例"spring-hibernate注解配置源码"旨在展示如何在不使用XML配置的情况下,通过注解的方式整合Struts2、Spring和Hibernate,创建一个完整的MVC(模型-视图-控制器)架构的应用。下面将详细介绍这个过程中的关键...

    Spring+Hibernate注解事务实例

    Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了数据库操作,使得开发者可以像操作对象一样操作数据库。通过Hibernate,我们可以定义实体类,映射到数据库表,然后使用HQL(Hibernate查询语言)进行...

    hibernate4全注解例子

    **标题:“Hibernate4全注解例子”** 这篇文章主要讲解了如何在Java开发中使用Hibernate4框架,通过注解的方式进行数据库操作。Hibernate4是Java领域中广泛应用的对象关系映射(ORM)工具,它允许开发者使用面向...

    spring,springMVC,Hibernate全注解案例

    这个"spring,springMVC,Hibernate全注解案例"旨在通过注解的方式,帮助开发者理解如何在不编写XML配置的情况下,实现数据库与应用程序的交互。 Spring框架是一个全面的后端开发解决方案,它包含了依赖注入(DI)和...

Global site tag (gtag.js) - Google Analytics