OneToMany和ManyToOne的使用和避免产生中间表
@OneToMany单独使用
- 一对多关系,注解单独使用时会产生中间表。
- 配合
@JoinColumn(name = "")
可以不产生中间表,外键生成在Many方。name属性指定了生成的外键的名字。
@ManyToOne单独使用
- 多对一关系,注解单独使用时不会产生中间表
- 外键生成在Many方,使用
@JoinColumn(name = "")
可以指定生成的外键的名字。
@OneToMany和@ManyToOne联合使用(双向绑定)
- 双向绑定。
- 使用
@OneToMany(mappedBy = "")
来避免生成中间表。 @ManyToOne
和@JoinColumn(name = "", referencedColumnName = "")
配合使用,referencedColumnName声明外键指向的主键。
例如,一个班级有多名学生:
\\班级表
@Entity
@Table(name = "class")
public class ClassDao {
@Id
private S