问题标签 [jdbi3-core]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
848 浏览

java - jdbi在使用reduceRows加入时抛出错误,一对多关系

我正在尝试使用 JDBI 编写一个对象查询来处理一对多关系。如文档中所见,reduceRows是这样做的方法。但是我把这些错误归咎于构造函数;

更新:为每个实体保留一个构造函数。

我测试了文档中的代码,得到了这些堆栈跟踪:

我的代码:

摇篮依赖:

将不胜感激任何帮助/有人指出我正确的方向!是否可以在 Dao 界面中做到这一点?

0 投票
0 回答
75 浏览

kotlin - 在接口方法中获取当前事务句柄

我试图在我的接口方法中访问当前的 JDBI 事务handle,这样做的目的是避免将handle作为参数传递给接口的方法,从而使接口不受任何实现细节的影响。以下示例演示了预期的用例是什么。

我有一个UserApplicationService管理正在使用的交易

我有一个UserRepository界面

我有一个PostgresUserRepository接口的实现

任何有关如何解决此问题的建议将不胜感激。

0 投票
0 回答
816 浏览

jdbi - 使用 JDBI 映射 @Json 属性

根据 JDBI 文档https://jdbi.org/#_jackson_2,拥有对象模型的 json 属性似乎很简单,但是我尝试了以下方法,但遇到了很多问题。

DB:具有 Jsonb 列类型的 Postgres

数据源已配置

插入绑定列表的SQL

运行代码插入时,出现以下错误:

如果我创建了 EventPropertyArgumentFactory 并使用 Jackson ObjectMapper 和 writeValueAsString,那么我可以将它保存到 DB。但是,当从数据库中检索它时

抛出以下错误

我认为我需要做的就是声明用@Json 注释的字段,DB 列必须是 json/jsonb 类型并安装插件,但似乎情况并非如此?

任何人都成功地尝试过这个,而不必定义自定义行映射器和参数工厂实现?

谢谢

0 投票
1 回答
85 浏览

jdbi - 记录 Jdbi 与数据库的交互

我在这里围绕这个主题回顾了几个问题/答案,但没有什么是开箱即用的。我还阅读了官方文档中的SqlLogger部分,但我仍然找不到记录/可视化 Jdbi(版本3.x)在与数据库交互时“正在做什么”的方法?——以直截了当的方式。

我知道 Jdbi 正在使用几乎原始的 SQL,但是能够看到框架/库说它为调试目的所做的事情总是很好的,等等。

我已经尝试了几乎任何从org.jdbi(在logback.xml文件中)开始的命名空间,直到trace模式,但我只看到如下内容:

这些天有没有办法做到这一点?

0 投票
1 回答
66 浏览

postgresql - JDBI 无法将 PGInterval 绑定到 PostgreSQL INTERVAL

尝试使用 JDBI 在 PostgreSQL 中更新或插入包含 INTERVAL 的表时,出现以下错误: org.jdbi.v3.core.statement.UnableToCreateStatementException: No argument factory registered for '1 years 0 mons 0 days 0 hours 0 mins 0.0 secs' of qualified type org.postgresql.util.PGInterval [...]

最小的可重现示例:

  • 在数据库中:
  • 在 Kotlin 中(可能在纯 Java 中产生相同的结果):

我尝试将其作为字符串插入,因为查询接受“P1Y”,但这给了我ERROR: column "i" is of type interval but expression is of type character varying,如果第一种方法有效,这将是有意义的。

似乎只有 PGIntervals 成为预期的工作类型才有意义,因为从结果集中获取间隔时,会返回 PGInterval。

虽然我怀疑它是否重要,但我正在使用:

  • x86_64-pc-linux-gnu 上的 PostgreSQL 13.2 (Debian 13.2-1.pgdg100+1),由 gcc (Debian 8.3.0-6) 8.3.0 编译,64 位
  • org.jdbi:jdbi3-core:3.18.1 + org.jdbi:jdbi3-kotlin:3.18.1 + org.postgresql:postgresql:42.2.19
0 投票
1 回答
495 浏览

java - JDBI 错误没有为类型注册映射器

我正在尝试创建一个从我的数据库中的客户表返回所有用户的方法,但是这段代码:

返回错误:

我看到另一个关于这个错误的帖子,他们说这个错误是由于类模型和数据库表之间的映射而发生的,但是我的应用程序是用纯 java 和 JDBI 3 构建的,我没有使用 Spring,所以如何映射结果此代码用于将此结果转换为客户列表?

0 投票
0 回答
387 浏览

java - JDBI - 将 Bean 与列表属性绑定

我有一个使用 JDBI 查询 Redshift 集群的程序,我正在努力使用该bindBean功能生成适当的 SQL 语句。

上面的代码抛出了异常:org.jdbi.v3.core.statement.UnableToCreateStatementException: No argument factory registered for type [java.util.List<java.lang.String>].

我读到这可以通过注册数组类型来解决,如下所示:

实际上,这消除了异常,但生成的最终 SQL 语句不正确(注意 IN 子句的格式不正确)。

由于使用该bindList功能的列表标识符包含在 中<>,因此我尝试将 SQL 模板更改为:

这导致了以下异常:

有谁知道如何解决这个问题?欢迎任何建议:)

谢谢!

0 投票
1 回答
64 浏览

spring-boot - 我们可以在spring boot项目中使用多个数据源和jdbi吗

我们可以在 jdbi 中使用多个数据源吗?

配置是否与我们使用 JPA 的配置相同:https ://www.baeldung.com/spring-data-jpa-multiple-databases

0 投票
1 回答
46 浏览

mysql - varbinary 和 uuid 上的 JDBI 选择

旧版 mysql 数据库表有一个 id 列,它是非人类可读的原始 varbinary(不要问我为什么:P)

我需要根据 java.util.UUID 选择它

以防万一有人想看到它,这是映射器输出(但同样,映射器输出不是问题 - 将 uuid 绑定到 varbinary id db 列是)

我已经尝试了各种方法来使绑定起作用,但没有成功 - 任何建议都非常感谢!

0 投票
1 回答
55 浏览

java - 是否所有异常都从 JdbiException 类型的 Jdbi 中抛出?

它在这里指出:

https://jdbi.org/apidocs/org/jdbi/v3/core/JdbiException.html

JdbiExceptionBase unchecked exception for exceptions thrown from jdbi.

但是,如果我withHandle使用各种不同的回调调用该方法:

文档声明它会抛出X extends Exception(而不是JdbiExecption像我预期的那样抛出)并将其描述为@param <X> exception type thrown by the callback, if any.

我想知道是否可以安全地打电话withHandle并抓住JdbiException,而不是不得不抓住Exception