Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PSQL异常后解释乐观锁定失败异常_Java_Postgresql_Hibernate_Optimistic Locking - Fatal编程技术网

Java PSQL异常后解释乐观锁定失败异常

Java PSQL异常后解释乐观锁定失败异常,java,postgresql,hibernate,optimistic-locking,Java,Postgresql,Hibernate,Optimistic Locking,我有一个休闲场景,我想清楚地理解它,这样我就可以用一种合适的方式来修复它 某些实体必须使用hibernate持久化到PostgreSQL数据库。这是错误发生之前发生的事件的过程 实体试图保存到数据库中(作为多线程执行的逻辑的一部分)。该实体的属性中有一个null字符(0x00),我得到了一个由 org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding "UTF8": 0x00 因

我有一个休闲场景,我想清楚地理解它,这样我就可以用一种合适的方式来修复它

某些实体必须使用hibernate持久化到PostgreSQL数据库。这是错误发生之前发生的事件的过程

  • 实体试图保存到数据库中(作为多线程执行的逻辑的一部分)。该实体的属性中有一个
    null
    字符(
    0x00
    ),我得到了一个由

    org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding "UTF8": 0x00
    
    因为PostgreSQL不能持久化
    null
    chars,这是可以的

  • 然后修改同一实体,但在上述逻辑的并行执行结束后,该实体现在处于单线程环境中,并再次被持久化以更新数据库

    现在我得到一个乐观的锁定失败异常,表示实体已经保存,对象“过时”


  • 有人能解释一下在后台发生了什么以及我如何防止这种情况发生吗?

    您的实体在多线程代码中加载到了不同的事务中,这就是它变得过时的原因,当您尝试在以不同方式运行的单线程代码中更新它时,需要重新加载它transaction@Lino但这只发生在抛出第一个异常时(关于null char异常),在其他情况下一切正常。并且实体是否在
    org.postgresql.util.psqleexception:错误:编码“UTF8”的字节序列无效:0x00
    ?我猜它不是,更新后hibernate说它过时了,这让我很困惑。尽管PSQLException
    (0x00字符),实体是否实际持久化?
    
    org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [com.yc.isystem.business.Offer] with identifier [691909329]:
         optimistic locking failed; nested exception is
         org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.yc.isystem.business.Offer#691909329]