覆盖 jOOQ 对 UpdatableRecords 的异常处理

2024-02-17

我使用的是 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。就我而言,我只是希望进程处于休眠状态,直到 CRUD 操作起作用,或者我观察到问题并进行干预。这意味着我需要将 BookRecord.store() 的每个实例包装在 try/catch 中。然后,这适用于所有 UpdatableRecords 中的所有 CRUD 操作。

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


我不确定这是否能满足您的实际要求,但使用ExecuteListener http://www.jooq.org/javadoc/latest/org/jooq/ExecuteListener.html,您可以挂钩 jOOQ 的一般查询执行生命周期,并将一些行为注入 jOOQ 的异常处理中。这里给出一些例子:

http://www.jooq.org/doc/3.1/manual/sql-execution/execute-listeners 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
    }
}

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

覆盖 jOOQ 对 UpdatableRecords 的异常处理 的相关文章

随机推荐

  • 使用平铺进行透视图像转换

    在寻找一个可以用于我计划创建的新应用程序的良好图像处理库 我将使用 C NET VS 2008 我的应用程序需要执行以下操作 在启动时加载图像并将其显示在图片框中 然后我应该能够在图片框中的任何位置选择四个点 左上 右上 左下 右下 然后
  • 这是在java中声明记录器变量的最佳方法

    我只是想知道在 java 中声明记录器变量的最佳方法是什么 以下是一些声明 1 gt private static final Logger logger Logger getLogger ServiceImpl class 2 gt pr
  • 如何在c中找到内存分配的最大限制

    我想确定我可以在计算机中分配的最大内存限制是多少 这是我为此任务编写的代码 include
  • 使用 win32inet.WinHttpGetProxyForUrl 的正确方法是什么

    我正在尝试使用 Win32com 开发人员公开的 Microsoft WinHttp 库的一项功能 不幸的是 大多数库似乎没有文档记录 并且没有通过 win32com 库使用 win32inet 功能的正确方法的示例 这是我到目前为止所拥有
  • 有没有办法一次性清除表单中的所有字段?

    我刚刚开始学习 C 我想知道是否可以清除所有文本框的内容 例如我的表单中的内容 我知道如何一一清除 但这对我来说不实用 thanks 编辑 我找到了答案 非常感谢大家 您可以使用以下循环来清除活动表单中的所有文本框对象 foreach Co
  • 在Unity中使用动态关键字/.NET 4.6功能

    我正在尝试将 GraphQL 实现到 Unity3D 版本 2017 1 0f3 Personal 中 我正在使用 NET 4 6 实验版 但尽管如此 Unity 不支持动态关键字 这很奇怪 因为 NET 4 0它是 NET的一部分 除了在
  • Windows批量正则表达式搜索和替换

    我有一组这样的数据 7859 10000 00 7859 10000 00 xfer 1 要检查 1033 1035 32768 000 17 22174479 10000 00 xfer 2 待检查 1032 1035 它们从文件中读取并
  • 承诺不等待完成

    我今天看了很多例子 他们似乎建议以下代码应该在链中执行 let f gt return new Promise res rej gt console log entering function setTimeout gt console l
  • Oracle 如何处理 SQL 中的存储函数调用?

    伙计们 说吧 我有一个疑问 select t value my stored function t value from my table t where my stored function t value n Some Required
  • 更改上传的二进制文件字段的文件名

    我在用着Odoo8 我有一个问题我用过fields binary在 Odoo 中上传文件 但是当我尝试下载它时filename上传文件的内容是型号名称 是否可以更改filename文件的 其次 字段中的过滤器属性不起作用 我对这个问题的解决
  • 在并发环境中从地图中删除是否安全?在戈兰

    我是否需要在从地图上删除该项目之前先上锁 package main import errors sync time type A struct Error error func a A Job more job var l sync RWM
  • 这是什么意思?

    我安装了 pychecker 并注意到我应该用来运行 pychecker 的批处理文件包含以下条目 C Python26 python exe C Python26 Lib site packages pychecker checker p
  • 运行 Angular e2e 测试时如何禁用或绕过 MSAL 身份验证?

    我想为我的 Angular 应用程序设置一些端到端测试 这需要使用 MSAL 库对某些下游服务进行身份验证 当我尝试在本地运行 e2e 测试时 MSAL 库强制我使用用户名 密码进行身份验证 这是一个问题 因为我们的 CI CD e2e 测
  • 来自谷歌云存储的文件列表

    对于我正在做的一个项目 我将文件存储在 Google 的云存储中 并正在构建一个网络应用程序来连接这些文件 我希望我的应用程序显示存储在我的存储桶中的文件列表 或对象可能是适当的名称 我对网络开发和谷歌 API 完全陌生 我一直在研究如何做
  • 如何在 Gradle 中启用自动下载缺少的 Android SDK 包

    2016 年 Google I O 大会期间Android 开发工具的新增功能 https www youtube com watch v csaXml4xtN8很快就提到了一个很棒的新功能 Android Gradle 插件现在可以自动从
  • 我可以扩展参数包并用它定义参数列表吗?

    From 温度变量 http eel is c draft temp variadic 4 工作草案 在我看来 可以在定义另一个模板类或函数的参数列表时扩展参数包 考虑下面的类 template
  • 如何在 Aptana Studio 的文本编辑器中激活自动换行?

    如何在 Aptana Studio 的文本编辑器中激活换行 我对在视图模式下换行感兴趣 以便不必进行水平滚动 尝试在编辑器中右键单击并从上下文菜单中选择 自动换行
  • HTML5网页是否可以接受手写笔输入

    我想创建一个网页 用户可以在其中使用手写笔书写签名 就像您签署包裹或包裹时一样 有谁知道这是否可能 我不确定从哪里开始 但我猜我必须使用元素和 javascript 只要您的客户使用的设备支持使用手写笔进行触摸输入 就完全有可能 你可以看到
  • 是否可以在 Lambda 触发器中修改 AWS Cognito 用户属性

    查看AWS文档 https docs aws amazon com cognito latest developerguide cognito user identity pools working with aws lambda trig
  • 覆盖 jOOQ 对 UpdatableRecords 的异常处理

    我使用的是 jOOQ v2 6 因为我使用的是 SQL Server 2008 R2 并且 jOOQ v3 1 中存在一个错误 导致代码生成失败 我知道这将在 v3 2 中修复 从手册中 Create a new record BookRe