1...表与表之间的关联:
一对一: A B 两张表 A表中的每条的记录对应的B的一条记录
:一对一关系实现方式:
1:使用外键关联
: 场景:使用客户表和客户拓展表
:在属性上 添加一个@OneToOne代表一个对一个的关系 在属性上添加@JoinColumn name 存储外键的字段 referencedColumnNm 对方表的字段名称 (可以省略)
2:使用主键关联,两个表 A B 的主键相同。
: 使用@PrimaryKeyJoinColumn 注解不需要配置属性 双方都需要添加
一对多: A B 两张表 A表中的每条的记录对应B表中多条的记录 B表中多条的记录对应A表中一条记录
:场景:客户和联系人之间 一对多 一个客户对应多个联系人
:单方:1 添加一个属性 记录多的一方的信息 应该是一个集合 hashset 2 在属性上添加一个注解 @OneToMany 3一定是多的一方记录外键 参照一的一方的主键
:多方:1 在属性上添加 注解 @ManyToOne 2 在属性上添加 @joinColumn 注解
报错:Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements
分析: 错误使用 1:单方:使用得 注解:@OneToMany 2:多方:在属性上添加 注解 @OneToMany
正确使用:1:单方:使用得 注解:@OneToMany 2:多方:在属性上添加 注解 @ManyToOne
提示:这种报错大致都是为:@OneToMany 与@OneToMany 的错用