关于hibernate的mappedBy的使用:
mappedBy:
1:只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性;
2:mappedBy标签一定是定义在被拥有方的,他指向拥有方;
3:mappedBy的含义,应该理解为,拥有方能够自动维护跟被拥有方的关系,当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的;
4:mappedBy跟joinColumn/JoinTable总是处于互斥的一方,可以理解为正是由于拥有方的关联被拥有方的字段存在,拥有方才拥有了被拥有方。mappedBy这方定义JoinColumn/JoinTable总是失效的,不会建立对应的字段或者表。
mappedBy表示声明自己不是一对多的关系维护端,由对方来维护,是在一的一方进行声明的。mappedBy的值应该为一的一方在多的一方的属性名字。
例如:书籍与种类,一个种类有多本书。
在种类实体类中
@OneToMany(mappedBy="kind")
@Cascade(CascadeType.ALL)
private List<book> book;
完整例子:Company与flight(一对多)
@Entity
@Table(name="t_company")
public class Company extends BaseEntity<Long>
{private String companyName;private List<Flight> flights = new ArrayList<Flight>();public String getCompanyName() {return companyName;}@OneToMany(cascade=CascadeType.ALL,mappedBy="company",fetch=FetchType.LAZY)public List<Flight> getFlights() {return flights;}public void setFlights(List<Flight> flights) {this.flights = flights;}
@Entity
@Table(name="t_flight")
public class Flight extends BaseEntity<Long>
{private String flightCode;private Company company;public String getFlightCode() {return flightCode;}@ManyToOne(cascade=CascadeType.ALL)//多对一级联删除,使用ALL建议先移除关系(update)再deletepublic Company getCompany() {return company;}public void setFlightCode(String flightCode) {this.flightCode = flightCode;}public void setCompany(Company company) {this.company = company;}
}
关于hibernate的mappedBy的使用:相关推荐
- Hibernate之mappedBy
Hibernate之mappedBy 摘要: 一.mappedBy单向关系不需要设置该属性,双向关系必须设置,避免双方都建立外键字段 数据库中1对多的关系,关联关系总是被多方维护的即外键建在多方,我们 ...
- org.hibernate.AnnotationException: mappedBy reference an unknown target entity property
org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: xxxxxxx 原因是 ...
- hibernate中mappedby的理解
mappedBy的意思就是"被映射",即mappedBy这方不用管关联关系,关联关系交给另一方处理 1.规律:凡是双向关联,mapped必设,因为根本都没必要在2个表中都存在一个外 ...
- hibernate 配置@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY) 主导方问题删除问题。
hibernate 配置@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY) ?? 多对一的关系 ,关系有一个主导方.主导方应该是one的 ...
- mappedBy reference an unknown target entity property 错误 @ManyToMany(mappedBy @OneToMany(mappedBy
mappedBy reference an unknown target entity property 错误 @ManyToMany(mappedBy = @OneToMany (mappedBy ...
- linux查看命令类型,查看linux命令类型
LINUX 虚拟机克隆与网络配置 虚拟机克隆后,启动之后发现网卡没有启动.发现提示错误信息"Device eth0 does not seem to be present, delaying ...
- springboot笔记整理
在搭建简单的demo程序时 出现如上报错问题, 经查询得出 关于idea 中使用mybastis报出 Invalid bound statement (not found)的错误解决方案 m ...
- 码农小汪-Hibernate学习8-hibernate关联关系注解表示@OneToMany mappedBy @ManyToMany @JoinTable...
近期我也是有点郁闷,究竟是程序中处理关联关系.还是直接使用外键处理关联关系呢?这个的说法不一致!程序中处理这样的关联关系的话.自己去维护这样的约束.这样的非常乐观的一种做法!或者是直接在数据库中处理这 ...
- Hibernate中,mappedBy和注解@JoinColumn的对比
mappedBy 我们知道,mappedBy用于指定具有双向关系的两个实体中.哪个实体是被关联处理的.它有如下四个特点: 1.只有OneToOne,OneToMany,ManyToMany上才有map ...
- hibernate - mappedby的理解
mappedBy的意思就是"被映射",即mappedBy这方不用管关联关系,关联关系交给另一方处理 1.规律:凡是双向关联,mapped必设,因为根本都没必要在2个表中都存在一个外 ...
最新文章
- python 中float 的语法_python语法和基本数据类型
- 全球与中国InGaAs光电二极管传感器市场投资机会与市场风险评估报告2022-2028年
- BAT脚本加防火墙455端口
- 开源 程序员清单_2015开源夏季阅读清单
- linux和windows接口中文乱码_Loadrunnerweb接口基础
- 人工智能的数学基础(二):函数
- pd.stats.ols.MovingOLS以及替代
- spring中怎么访问MySQL过程_DB数据源之SpringBoot+MyBatis踏坑过程(六)mysql中查看连接,配置连接数量...
- 1061. 判断题(15)-PAT乙级真题
- string 转换int
- wordpress rest api 登录_Python构建RESTful网络服务[Django篇:生成API文档]
- 华为的哪个字体像苹果的_华为默认字体是什么字体
- SDNUOJ 1520.采药(多重背包问题)
- 浅析javaIO的原理过程
- 如何使用计算机计算平方面积,尺平方米换算计算器(面积单位换算器)
- 2018.10.31-dtoj-4015-永琳的竹林迷径(path)
- 水滴筹、轻松筹死磕健康保
- 北大计算机专业考研难不难,北京大学考研有多难 二本考研上北大经验谈
- 正则表达式的或匹配——[]和|(优先匹配)
- Bmob用户功能详解(三)