gpt4 book ai didi

java - 覆盖 jOOQ 对 UpdatableRecords 的异常处理

转载 作者:行者123 更新时间:2023-11-30 08:30:02 25 4
gpt4 key购买 nike

我使用的是 jOOQ v2.6,因为我使用的是 SQL Server 2008 R2,jOOQ v3.1 中有一个错误导致代码生成失败。 (我知道这将在 v3.2 中修复)。

来自手册:

// Create a new record
BookRecord book1 = create.newRecord(BOOK);

// Insert the record: INSERT INTO BOOK (TITLE) VALUES ('1984');
book1.setTitle("1984");
book1.store();

如果 store() 失败,将抛出 DataAccessException。在我的例子中,我只想让进程 hibernate ,直到 CRUD 操作起作用,或者我观察到问题并进行干预。这意味着我需要将 BookRecord.store() 的每个实例包装在 try/catch 中。然后,这适用于所有 UpdatableRecords 的所有 CRUD 操作。

有没有一种简单的方法可以处理所有生成的记录类型的所有 CRUD DataAccessExceptions,而不必记住一遍又一遍地实现相同的异常处理程序?

最佳答案

我不是 100% 确定这是否会满足您的实际要求,但使用 ExecuteListener ,您可以 Hook 到 jOOQ 的一般查询执行生命周期,并将一些行为注入(inject)到 jOOQ 的异常处理中。此处给出了一些示例:

http://www.jooq.org/doc/3.1/manual/sql-execution/execute-listeners

特别是,您的自定义 ExecuteListener 可能如下所示:

public class MyListener extends DefaultExecuteListener {

@Override
public void exception(ExecuteContext ctx) {
// Put some logic here
}
}

请注意,这目前不会阻止异常本身的抛出。

关于java - 覆盖 jOOQ 对 UpdatableRecords 的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18932960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com