ManytOone的级联保存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ManytOone的级联保存相关的知识,希望对你有一定的参考价值。

(1)在many方(如user)添加指向one方(如group)的引用即在user类中增加“ private Group group;”,并生成geter和seter。
(2)在geter上添加注解@ManyToOne、@JoinColumn(name="groupId")其中groupId表示生成表的外键名。
(3)编写测试程序
1)得到Configuration,生成SchemaExport ,在数据库中建立表(如果已存在,立即删除)
2)新建Group对象和多个user对象,并设置user对象的group属性。
3)得到Session,开启事物,保存user对象,则对应的group对象也会自动保存到表中。

2.one2many的级联保存
(1)在one方(如Group)添加一个集合(如Set<User>)
【注意】一定要用new创建集合
private Set<User> users=new HashSet<User>();
(2)生成getter和setter
(3)在getter上添加注解
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="groupId")
(4)编写测试程序
User u1=new User();
u1.setName("张三");
User u2=new User();
u2.setName("李四");
Group g=new Group();
g.setName("管理员组");
g.getUsers().add(u1);
g.getUsers().add(u2);
session.save(g); //保存group,自动保存对应的users

以上是关于ManytOone的级联保存的主要内容,如果未能解决你的问题,请参考以下文章

JPA 2.1 外键没有保存在 ManyToOne 级联上

many2one的级联添加

如何通过级联级联@ManyToOne 双向关系?

如何正确映射@OneToMany 和@ManyToOne 关系,以便我可以保存和更新@OneToMany 端(有或没有@ManyToOne 端)

如何在ManyToOne Doctrine关系中约束将id号保存为字段值?

Symfony 5 easyadmin 3 与 ManyToOne 关系的实体 - 不保存在“多”端