zoukankan      html  css  js  c++  java
  • Merge使用

    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对象没有做任何修改,则不执行任何操作。

  • 相关阅读:
    JSP内置对象
    Java数据结构
    Java引用传递
    椭圆曲线算法的基本原理及实现
    常见的Java异常
    Java数据结构
    Java数据结构
    重拾JSP
    [洛谷P6185] [NOI online 提高]T1 序列
    [题解][BZOJ1299]巧克力棒
  • 原文地址:https://www.cnblogs.com/ranger2016/p/3951384.html
Copyright © 2011-2022 走看看