博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate saveOrUpdate方法到底是怎么执行的?
阅读量:5169 次
发布时间:2019-06-13

本文共 517 字,大约阅读时间需要 1 分钟。

  saveOrUpdate方法,如果传入的对象有主键就执行更新,没有就执行新增。这句话误导了很多人。

  究竟是执行新增还是更新,是要有上下文环境的。这个环境就是主键策略的选择。

  主键生成方式为 手动设置:assigned:

    设置了主键的值:

       执行select * from table_name where id = ?  

      若可以查到数据,则执行update操作,

      如果查不到数据,则执行save操作。

    没有设置主键的值:

      hibernate报错,意思是没有指示主键是多少,hibernate不知道怎么往数据库插入。

  主键生成方式为 自动生成:identity:

    如果该对象设置了主键的值:

        执行update操作

      若数据库表中有匹配该id的数据,修改成功。

      若数据库表中没有匹配该id的数据,hibernate报错。

    如果该对象不存在标识属性:

    执行save 操作,自动生成主键,插入该数据进入数据库。

转载于:https://www.cnblogs.com/anai/p/4233698.html

你可能感兴趣的文章