hibernate 核心总结 (面试)

时间:2023-01-16 22:17:12

1:1(类与类之间) husband----wife

外键关联:

a)单向@OneToOne

b)双向@OneToOne, mappedby="husband"

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

hibernate 核心总结 (面试)

hibernate 核心总结 (面试)

Wife

hibernate 核心总结 (面试)

hibernate 核心总结 (面试)

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

hibernate 核心总结 (面试)

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)

hibernate 核心总结 (面试)

hibernate 核心总结 (面试)hibernate 核心总结 (面试)

hibernate 核心总结 (面试)

hibernate 核心总结 (面试)

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

hibernate 核心总结 (面试)

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

外键 在 多的哪一方

3)n:1  User---group

        a)单向 @ManyToOne  User 里放group

b)双向 @ManyToOne  User 里放group

n:1

hibernate 核心总结 (面试)hibernate 核心总结 (面试)hibernate 核心总结 (面试)

这样做就搞定了

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

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