hibernate 核心总结 (面试)

1:1(类与类之间) husband----wife
外键关联:
a)单向@OneToOne

b)双向@OneToOne, mappedby="husband"
---------表的结构在任意一方加外键----

 




Wife




 

 

msqlbench 使用方法 生成类之间关系图

 


 

database - >reserve engine--》  就逆向的把表转为ss模型


 

2)1:n  Group----User
        a)单向 @OneToMany Group里放Set<users>

b)双向 @OneToMany mappedby="husband"

1:n 体现在类的方面的意义

Group 可以访问 User

但是 User 不可以访问 Group

a)



 




b)双向的   两个类可以互相访问


虽然两个类之间的关系不一样  ,但是他们对 数据库中的表的影响却是一致的 

外键 在 多的哪一方

 

 

 

3)n:1  User---group
        a)单向 @ManyToOne  User 里放group

b)双向 @ManyToOne  User 里放group

n:1

 



 

这样做就搞定了

 

3)many to many 

会生成第三个表 

将多个表的主键关系生成在generator——tables

 

1)1:1(类与类之间) husband----wife
外键关联:
a)单向@OneToOne
b)双向@OneToOne, mappedby="husband"
---------表的结构在任意一方加外键----

主键关联:
@PrimaryKeyJoinColumn


------两个表合并成一个表-----
@Embedded,不再是@OneToOne

-----联合外键------
1)建立联合外键类,实现序列化,重写equals,hashcode
2)删除原来类里面的外键的属性及get,set方法, 联合外键类作为新的属性,并产生get,set方法
3)@IDClass(WifePK.class)
4)wife 里要把是主键的属性的get方法上加入@id

---------表的结构在任意一方加多个外键----

2)1:n  Group----User
a)单向 @OneToMany Group里放Set<users>

a)双向 @OneToMany mappedby="husband"

3)n:1  User---group
a)单向 @ManyToOne  User 里放group

a)双向 @ManyToOne  User 里放group
--------表的结构永远是在多的一方加外键-----


4)n:n  Teacher----Student   

@ManyToMany
--------表的结构永远是产生临时表----- 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值