文档章节

JPA mappedBy属性

bigYuan
 bigYuan
发布于 2014/10/23 12:18
字数 337
阅读 357
收藏 1
JPA,在@OneToMany里加入mappedBy属性避免生成中间表

使用JPA的时候,如果A B两个实体间是一对多,多对一的关系,如果不在@OneToMany里加入mappedBy属性(相当于inverse=”true”)会导致自动生成一个多余的中间表。比如:

 

@Entity public class A { @OneToMany(mappedBy="a") public Set<B> bs = new HashSet<B>(0); } @Entity public class B { @ManyToOne public A a; }  


这样写会只成生成表A和表B,B中会有一个到表A的外键。但是如果不加mappedBy=”a”, 那么就会再生成一张A_B表。 


又如:

In Customer class

@OneToMany(cascade=ALL, mappedBy="customer")
public  Set getOrders() { 
	return orders; 
}


In Order class

@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() { 
	return customer; 
}

 


mappedBy="customer"
说明在两个关联的实体Bean中,orders这一端是关系的拥有者,Orders一方的表中生成到关联类的外键
且mappedBy只有在双向关联时,才会使用这个属性
cascade=ALL
说明,当Orders做CRUD操作时,Customer都会进行相应操作

一对多的场合,mappedBy(被拥有者)不含外键,另一方含外键(拥有者)

多对多的场合,拥有者和别拥有者都不含各自的外键(通过中间表关联),所以可根据实际需求,设置两端的拥有情况(很灵活)


optional=false代表not-null,与lazy没有关系

© 著作权归作者所有

bigYuan
粉丝 17
博文 135
码字总数 43172
作品 0
大连
程序员
私信 提问
web 基础巩固——JSP基础

本文按照官网文档总结,但是有可能会理解错误,学习时尽量和其他网站进行对比,同时也欢迎指出错误,好让我及时改正 什么是JSP页面? JSP页面是一个文本文档,包含两种类型的文本:静态数据,...

SXJR
2018/11/26
0
0
JSP运行原理与JSP隐式对象(9个)

一、JSP运行原理 Web容器(Servlet引擎)接收到.jsp为扩展名的URL访问请求时,它将把该访问请求交给JSP引擎去处理,JSP引擎负责解释和执行JSP页面。 当Web容器接收到客户端的访问请求时,它将...

KYZGJ
2014/04/14
0
0
(JavaEE-07)JSP.md

JSP JSP全称是Java Server Pages,它和Servlet技术一样,都是SUN公司定义的一种用于开发动态Web资源的技术。JSP的编写就像编写HTML一样简单,但是与HTML不同的是,在JSP中,可以编写Java代码...

_-Leon-_
2014/07/04
0
0
jsp简介

Jsp简介 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和...

晨曦之光
2012/05/16
235
0
Servlet 3.0 新特性详解

简介: Servlet 是 Java EE 规范体系的重要组成部分,也是 Java 开发人员必须具备的基础技能,Servlet 3.0 是 Servlet 规范的最新版本。本文主要介绍了 Servlet 3.0 引入的若干重要新特性,包...

红薯
2010/04/23
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

JVM调参

1、微服务项目打包: mvn clean package 2、java -jar .\ROOT.jar 3、访问微服务:http://localhost:8761/index -------------------------------------------------------------- 启动时,添......

一只小青蛙
7分钟前
0
0
阿里Sentinel控制台源码修改-对接Apollo规则持久化

https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel 动态规则扩展 https://github.com/alibaba/Sentinel/wiki......

jxlgzwh
昨天
0
0
在Linux系统中创建SSH服务器别名

如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间。你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地...

老孟的Linux私房菜
昨天
2
0
高德API入门教程

项目需求 1、实现打开地图就能定位到中心显示标注点 2、点击标注显示保利可爱岛的详细信息 3、实现导航功能 <!doctype html><html><head> <meta charset="utf-8"> <meta http-......

我叫小糖主
昨天
8
0
聊聊Elasticsearch的MonitorService

序 本文主要研究一下Elasticsearch的MonitorService MonitorService elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/MonitorService.java public class MonitorServic......

go4it
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部