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语句来更新(实用的方法)。

  • 相关阅读:
    查询缓存
    Indexes
    计院生活第三章 狂轰乱炸(上)
    JAVA实现文件树
    OGNL表达式语言介绍
    DOM4J使用教程
    css 优先级
    《JavaScript凌厉开发 Ext详解与实践》3月5日开始上架销售
    Drools 规则引擎
    OLTP和OLAP区别
  • 原文地址:https://www.cnblogs.com/coffee/p/1671853.html
Copyright © 2011-2022 走看看