码迷,mamicode.com
首页 > 其他好文 > 详细

Merge使用

时间:2014-09-02 15:29:45      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   io   使用   java   数据   div   

Role r = new Role();
r.setName("TEST");
r.setDescription("123");
r.setLevel(2);
roleServices.merge(r);
System.out.println(r.getId());

上面代码执行完以后,r.getId()是null,

因为merge执行完成以后,merge的对象不会被持久化,如果把merge修改为save,则不会空。

Role r = new Role();
r.setName("TEST");
r.setDescription("123");
r.setLevel(2);
r.setId(1L);
roleServices.merge(r);
System.out.println(r.getId());

如果数据库中已经存在ID为1的role,则执行update,否则insert。

但是这样说是不对的?

因为merge在执行以前首先按照id来select,如果数据库中不存在,则执行insert;

但是如果数据库中查询出记录了,则分为两种情况:

1. 如果merge对象的属性和数据库中不一致了,则update

2. 如果merge对象没有做任何修改,则不执行任何操作。

 

Merge使用

标签:des   style   blog   color   io   使用   java   数据   div   

原文地址:http://www.cnblogs.com/ranger2016/p/3951384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!