kau*_*aur 3 java postgresql exception jooq
我在 Java 中收到 org.jooq.exception.DataAccessException 和一条消息
错误:由于事务之间的读/写依赖性,无法序列化访问详细信息:原因代码:在检查冲突期间,在识别为枢轴时被取消。提示:如果重试,事务可能会成功。
我想检查数据访问异常的错误代码,这是幕后的Postgres数据库。例如,序列化失败异常错误代码为40001。
如何检查 org.jooq.exception.DataAccessException 的错误代码?
我的动机是如果序列化失败则重试事务。
在 jOOQ 3.8 中,引入了SQLStateClass和( #4904 ) 来让您对 SQL 标准 SQL 状态值进行类型安全的访问。SQLStateSubclass
catch (DataAccessException e) {
System.out.println(e.sqlStateClass());
System.out.println(e.sqlStateSubclass());
if (SQLStateSubclass.C40001_SERIALIZATION_FAILURE == e.sqlStateSubclass()) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
在 jOOQ 3.8 之前,您可以访问底层SQLException以访问这些 SQL 状态值:
catch (DataAccessException e) {
if (e.getCause() instanceof SQLException &&
("40001".equals(((SQLException) e.getCause()).getSQLState()))) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1872 次 |
| 最近记录: |