zoukankan      html  css  js  c++  java
  • hibernate学习(4)——update

      update方法用于更新数据库内容。在hibernate API中的解释是可以把一个Detached状态的对象更新成Persistent对象。而通过实验发现,只要是有Id的对象(数据库有相应记录,包括手动指定id的Transient对象)都可以使用update方法进行更新。而对于Persistent对象来说,只要重新设置了对像的属性值,再Session提交的时候就会自动更新(隐式的调用update方法?)。关于更新。hibernate在Session flush的时候会和数据库进行比较。如果Session缓存中数据和数据库里的不一致就会发出Sql语句进行更新。

      注意到不论是使用update方法还是hibernate自动更新的时候,发出的sql语句都是把整个表的所有字段都更新一遍。这样在有的情况下(有某个字段存的数据比较大)效率会比较低。自然就想到要是能改动了那个字段就更新那个字段就好了。实现这个功能的方法有3个:1、在xml中配置property的update属性,对应在annotation中设置@column的updatable。(不灵活)2、在xml中设置dynamic-update。但是在annotation中没有对应的设置。可以使用merge()方法。3、使用hql语句来更新(实用的方法)。

  • 相关阅读:
    【分治】洛谷试炼场
    【Manacher】Colorful String
    【动态规划】背包九讲及相应习题
    【算法课】最大间隙问题
    【hash】Similarity of Subtrees
    YBT 股票买卖
    YBT 鸡蛋的硬度
    YBT 电池的寿命
    YBT Ride to Office
    YBT 装箱问题
  • 原文地址:https://www.cnblogs.com/coffee/p/1671853.html
Copyright © 2011-2022 走看看