惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Help Net Security
Help Net Security
G
Google Developers Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
F
Full Disclosure
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
V
V2EX
C
Cisco Blogs
博客园 - 司徒正美
Project Zero
Project Zero
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
Scott Helme
Scott Helme
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
S
Securelist
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
T
Threatpost
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
The Register - Security
The Register - Security
S
Security Archives - TechRepublic
博客园 - Franky
N
News | PayPal Newsroom
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
W
WeLiveSecurity
A
Arctic Wolf
B
Blog

博客园 - 不染丹心

C#中选择文件夹的对话框控件(转) 如何让潜伏在麻花腾公司的网监鹰犬QQ流氓不再扫描你的电脑 win7升级的神秘KEY 10款优秀的跨平台免费生产力软件[转] 不激活 不破解 免费使用正版Win7一年 Hibernate中获取数据的方式? 几道笔试题目 - 不染丹心 - 博客园 save()和saveorupdate()的区别? string和stringbuffer的区别? spring中集成Hibernate事物管理(转) IOC和AOP 一数列笔试题目 TCP/IP 各层的作用 Linux中目录文件权限如何定义? 数据库中什么是主键,什么是外键? 数据库中什么叫事务,具有的属性是什么? 交换机和路由器的作用,有什么区别? 请描述OSI协议中各层模型的名称和个功能? 请描述java中作用域public private protected 以及不写的区别?
Hibernate的关联关系
不染丹心 · 2009-12-23 · via 博客园 - 不染丹心

OneToOne

  OneToOne注释提供了5个属性供开发者定义类和类之间一对一关系的细节内容。

  1. targetEntity
    Class类型的属性。
    定义关系类的类型,默认是该成员属性对应的类类型,所以通常不需要提供定义。
  2. mappedBy
    String类型的属性。
    定义类之间的双向关系。如果类之间是单向关系,不需要提供定义,如果类和类之间形成双向关系,我们就需要使用这个属性进行定义,否则可能引起数据一致性的问题。比如上面的演示场景中,我们只是定义Book类有BookInfo属性,而BookExtend并没有Book属性,那么他们是单向关系,如何BookExtend中也定义了Book属性,那么Book和BookExtend之间就构成了双向关系。
  3. cascade
    CascadeType[]类型。
    该属性定义类和类之间的级联关系。定义的级联关系将被容器视为对当前类对象及其关联类对象采取相同的操作,而且这种关系是递归调用的。举个例子:Book和BookInfo有级联关系,那么删除Book时将同时删除它所对应的BookInfo对象。而如果BookInfo还和其他的对象之间有级联关系,那么这样的操作会一直递归执行下去。
    cascade的值只能从CascadeType.PERSIST(级联新建)、CascadeType.REMOVE(级联删除)、CascadeType.REFRESH(级联刷新)、CascadeType.MERGE(级联更新)中选择一个或多个。还有一个选择是使用CascadeType.ALL,表示选择全部四项。
  4. fatch
    FetchType类型的属性。
    可选择项包括:FetchType.EAGER和FetchType.LAZY。前者表示关系类在主类加载的时候同时加载,后者表示关系类在被访问时才加载。默认值是FetchType.EAGER。
  5. optional
    boolean类型的属性。
    定义该关联类对是否必须存在。如果设置为false,那么该属性就不能设置为null。默认值是true。

一对多

  我们可以使用OneToMany注释来描述类和类之间的一对多关系,OneToMany注释有四个属性:targetEntity、mappedBy、cascade和fetch,这四个属性的具体含义和OneToOne注释注释的同名属性一一对应,请大家参考前面章节中的内容。

多对一

  我们可以使用ManyToOne注释来描述类和类之间的多对一关系,ManyToOne注释有四个属性:targetEntity、cascade、fetch和optional,这四个属性的具体含义和OneToOne注释注释的同名属性一一对应,请大家参考前面章节中的内容。

多对多

  我们可以使用ManyToMany注释来描述类和类之间的多对多关系,ManyToMany注释有四个属性:targetEntity、mappedBy、cascade和fetch,这四个属性的具体含义和OneToOne注释注释的同名属性一一对应