1.EntityManaget的persist和merge方法的区别

更新时间:2023-07-29 01:22:47 阅读: 评论:0

丹江漂流
科研报告1.EntityManaget的persist和merge⽅法的区别
出嫁的女儿回娘家
1.persist和merge的区别:E的笔画
Persist:添加
Merge : 分两种情况,当对象存在id,则修改;当对象不存在id则添加。
看个例⼦:
1  1 public class Account {
2  2    private AccountRole accountRole;
3  3    @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
4  4    public AccountRole getAccountRole() {
松花蛋
5  5      return accountRole;
6  6    }
家长签字评语大全
7  7
8  8 //添加account的代码段
9  9 AccountRole role = RoleFromDataba(AccountRoles.ROLE_USER);
10 10 account.tAccountRole(role);
11 11 entityManager.persist(account);//(account)
问题说明: role是从数据库中查询出来的,在这种情况下⽤persist⽅法保存account对象,persist同时会将role也保存,这时候因为role这条记录在数据库中已经存在,所以
这时候调⽤ persist(account);会报异常。
烤冷面怎么做解决⽅法:
1. 可以取消掉persist⽅法调⽤时保存关联对象,即取消掉cascade = CascadeType.PERSIST北极星在哪个星座
2.可以使⽤merge⽅法替代persist。
所以从这可以看出,persist是直接保存,merge是根据id是否存在来判断是保存还是修改(id存在,则修改; id不存在,则添加),

本文发布于:2023-07-29 01:22:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1122169.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:存在   对象   数据库   保存
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图