一张oracle的表,一个java的变量(共享内存)
我要把一条记录插入到这张oracle的表,同时把数据赋值给在这个共享内存的Java变量要求这个是同一个事务,也就是可以把这个共享内存的变量看作是数据库的一张表来看待。
只有提交了,别的session才能看到表的数据和变量的数据不能先提交了表的INSERT/UPDATE,然后再去写数组,不能有时间差

解决方案 »

  1.   

    这个跟事务没关系,事务只管数据库,它不管你给多少个java对象赋值。你这个问题没有实时的数据,也不必要实时。你可以先写数组再insert/update。
      

  2.   

    先写数组,那么别的session就能看到我写到数组的值了,而后面的事务可能会失败,
    而写到变量里的值会被别的session错误 地读取(也就是不应该读取,如果事务失败)
      

  3.   

    应该先insert/update再写数组,就算其它session没有及时读取又怎么样呢,就当他读取时我还没insert/update嘛。
      

  4.   

    那你在事务commit成功之后再往session里存数据不就完了么。
      

  5.   


    这样别的session就能读到数组的值了,我不要这样
    我要的是:UPDATE表记录和变量赋值是同一个事务,可以理解为变量也是一个表记录的UPDATE
      

  6.   

    就算银行系统也有读的不一致的啊。比如你刚存钱时update前的那一刻,我读取了你账户信息,说不定你存成功了,由于网络原因我还没看到读的数据。只要保证更新是一致性就行了。读的一致性真不用。。