SpringBoot @OneToMany工作机制及关联数据更新问题
@OneToMany关联下插入Product时User表的更新问题
结论:完全不需要更新User表,Spring也不会自动去更新User表。
具体原因:
- @OneToMany关联的外键默认维护在多端(也就是Product表),比如Product表会有个
user_id字段关联User的主键。 - 插入新Product时,你只需要把Product对象和对应的User关联起来(比如
product.setUser(targetUser)),然后直接保存Product就行。这个操作只会往Product表插数据,把user_id字段填好,User表的数据根本不会有任何变动。 - 就算是双向关联(Product上同时加了@ManyToOne注解),关联关系的维护端还是Product,User是被维护端,插入Product的操作依然和User表没关系。
- @OneToMany关联的外键默认维护在多端(也就是Product表),比如Product表会有个
额外提醒:
- 如果你的@OneToMany注解里加了
mappedBy属性(明确指定由Product端维护关联),那就更不用碰User表,直接保存关联好User的Product就行。 - 只有当你修改User自身的属性(比如改用户名、邮箱)时,才需要更新User表;单纯新增关联Product的操作,和User表半毛钱关系都没有。
- 如果你的@OneToMany注解里加了
内容的提问来源于stack exchange,提问作者diego alamu
相关产品推荐
相关产品推荐

