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的级联保存的主要内容,如果未能解决你的问题,请参考以下文章
如何正确映射@OneToMany 和@ManyToOne 关系,以便我可以保存和更新@OneToMany 端(有或没有@ManyToOne 端)