【发布时间】:2022-01-10 11:59:12
【问题描述】:
我有不可变的类,例如:
@Value
public class MyEntry {
int id;
String name;
}
JDBI Developer Guide 声明它应该与@Value 注释一起使用。至少有bindBean() 或@BindBean。
但是当我将org.jdbi.v3.core.result.ResultBearing#mapToBean 方法与MyEntry.class 一起使用时,它会抛出java.lang.NoSuchMethodException: no such constructor: my.company.MyEntry.<init>()void/newInvokeSpecial。看起来它尝试使用空构造函数创建对象并在其后设置字段。但我想让我的类是不可变的。有什么想法吗?
更新:
龙目岛版本:1.18.20 jdbi 版本:3.25.0 jdk:15 和 16
失败的代码:
return jdbi.withHandle(
handle -> handle.createQuery("SELECT * FROM MyTable")
.mapToBean(MyEntry.class)
.list()
);
【问题讨论】:
-
请提供
JDBI/Lombok版本和JDBI 调用的完整示例。 -
@YuriiMelnychuk 完成