一、单项多对一(常用)
@ManyToOne
数据模型:一个客户可以有多个订单,而一个订单只能对应一个客户
数据模型 | 方向 | 注解使用方向 |
客户(Customer) | 1 | |
订单(Order) | n | @ManyToOne |
注释:使用@ManyToOne来映射多对一关系、使用@JoinColum来映射外键,并用name属性来映射外键的列名
操作 | 表现形式 |
增(add) | 若现保存1的一端,再保存n的一端,不会多出额外的update语句;若现保存n的一方,再保存1的一方,由于此时多的一方无法获取关联的外键对象,会在外键关联对象insert之后进行update操作更新自己的外键属性。 |
删(delete) | n的一端可以正常删除,而1的一端由于存在外键关联,不能够直接删除 |
改(update) | 正常修改 |
查(get) | 查询n的一端的数据,默认会把其外键关联的对象通过左外连接的方式查询出来;可以修改其加载策略来控制,以免出现性能浪费 |
关联属性的加载策略:fetch.LAZY(懒加载) fetch.EAGER(立即加载)