问题标签 [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.
java - jdbi在使用reduceRows加入时抛出错误,一对多关系
我正在尝试使用 JDBI 编写一个对象查询来处理一对多关系。如文档中所见,reduceRows
是这样做的方法。但是我把这些错误归咎于构造函数;
更新:为每个实体保留一个构造函数。
我测试了文档中的代码,得到了这些堆栈跟踪:
我的代码:
摇篮依赖:
将不胜感激任何帮助/有人指出我正确的方向!是否可以在 Dao 界面中做到这一点?
kotlin - 在接口方法中获取当前事务句柄
我试图在我的接口方法中访问当前的 JDBI 事务handle
,这样做的目的是避免将handle
作为参数传递给接口的方法,从而使接口不受任何实现细节的影响。以下示例演示了预期的用例是什么。
我有一个UserApplicationService
管理正在使用的交易
我有一个UserRepository
界面
我有一个PostgresUserRepository
接口的实现
任何有关如何解决此问题的建议将不胜感激。
jdbi - 使用 JDBI 映射 @Json 属性
根据 JDBI 文档https://jdbi.org/#_jackson_2,拥有对象模型的 json 属性似乎很简单,但是我尝试了以下方法,但遇到了很多问题。
DB:具有 Jsonb 列类型的 Postgres
数据源已配置
插入绑定列表的SQL
运行代码插入时,出现以下错误:
如果我创建了 EventPropertyArgumentFactory 并使用 Jackson ObjectMapper 和 writeValueAsString,那么我可以将它保存到 DB。但是,当从数据库中检索它时
抛出以下错误
我认为我需要做的就是声明用@Json 注释的字段,DB 列必须是 json/jsonb 类型并安装插件,但似乎情况并非如此?
任何人都成功地尝试过这个,而不必定义自定义行映射器和参数工厂实现?
谢谢
jdbi - 记录 Jdbi 与数据库的交互
我在这里围绕这个主题回顾了几个问题/答案,但没有什么是开箱即用的。我还阅读了官方文档中的SqlLogger部分,但我仍然找不到记录/可视化 Jdbi(版本3.x
)在与数据库交互时“正在做什么”的方法?——以直截了当的方式。
我知道 Jdbi 正在使用几乎原始的 SQL,但是能够看到框架/库说它为调试目的所做的事情总是很好的,等等。
我已经尝试了几乎任何从org.jdbi
(在logback.xml
文件中)开始的命名空间,直到trace
模式,但我只看到如下内容:
这些天有没有办法做到这一点?
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
java - JDBI 错误没有为类型注册映射器
我正在尝试创建一个从我的数据库中的客户表返回所有用户的方法,但是这段代码:
返回错误:
我看到另一个关于这个错误的帖子,他们说这个错误是由于类模型和数据库表之间的映射而发生的,但是我的应用程序是用纯 java 和 JDBI 3 构建的,我没有使用 Spring,所以如何映射结果此代码用于将此结果转换为客户列表?
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 模板更改为:
这导致了以下异常:
有谁知道如何解决这个问题?欢迎任何建议:)
谢谢!
spring-boot - 我们可以在spring boot项目中使用多个数据源和jdbi吗
我们可以在 jdbi 中使用多个数据源吗?
配置是否与我们使用 JPA 的配置相同:https ://www.baeldung.com/spring-data-jpa-multiple-databases
mysql - varbinary 和 uuid 上的 JDBI 选择
旧版 mysql 数据库表有一个 id 列,它是非人类可读的原始 varbinary(不要问我为什么:P)
我需要根据 java.util.UUID 选择它
以防万一有人想看到它,这是映射器输出(但同样,映射器输出不是问题 - 将 uuid 绑定到 varbinary id db 列是)
我已经尝试了各种方法来使绑定起作用,但没有成功 - 任何建议都非常感谢!
java - 是否所有异常都从 JdbiException 类型的 Jdbi 中抛出?
它在这里指出:
https://jdbi.org/apidocs/org/jdbi/v3/core/JdbiException.html
那JdbiException
是Base 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
?