Java PSQL异常后解释乐观锁定失败异常
我有一个休闲场景,我想清楚地理解它,这样我就可以用一种合适的方式来修复它 某些实体必须使用hibernate持久化到PostgreSQL数据库。这是错误发生之前发生的事件的过程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 因
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]