问题如下(spring+hibernate):
version字段会自动增长,但是没有起到锁的作用。测试方法
打开两个ie,查询出该信息,都打开修改窗口(此时已查询出原始的信息),在第一个修改操作成功后(此时version加1),第二个进行修改操作仍然成功!配置如下
<id name="id" column="ID" type="java.lang.Long" length="19">
  <generator class="native"></generator>
</id>
<version name="version" column="Version" type="java.lang.Long"/>请大虾指点!谢谢!

解决方案 »

  1.   

    <class
    name="xxx.xxx.xxx.className"
    table="xxxtable"
    dynamic-update="true"
    dynamic-insert="true"
    optimistic-lock="version"
    >有否,
    锁哪个pojo,就要培植一下,说明哪个用何方式来锁,
      

  2.   

    optimistic-lock="version" 配置了,表的version字段能成功更新,可是,起不到锁的作用。
      

  3.   

    你首先看一下数据库中的数据,是第一次保存的数据?还是第二此保存的?还是新增了一条数据?
    基本上没有可能是第一次保存的数据,所以就不说了
    如果是第二次保存的数据,或是新增了一条数据,那么你的逻辑可能是这样写的:先通过编辑数据的Id将此条数据查询出来,然后再分别对对应的字段副属性,然后再saveOrUpdate或update。
    另外需要注意的是,每次update,version的值会加一,看看version的值是否在你两次操作后加了2.
      

  4.   

    为什么我配了Version以后不自增Version,却收到了not-null property references a null or transient value