JDBI (3) 是否有对 bean 的非对称支持?

Does JDBI (3) have asymmetric support for beans?

JDBI (3) 对查询 bean 有很好的支持:

@SqlQuery("SELECT * FROM user ORDER BY name")
@RegisterBeanMapper(User.class)
List<User> listUsers();

并且,假设编译器设置为包含参数名称,它也支持插入 bean:

@SqlUpdate("INSERT INTO user(id, name) VALUES (:id, :name)")
void insertBean(@BindBean User user);

但是显然,当插入一个bean 时,您似乎需要枚举所有bean 字段,而对于查询一个,JDBI 可以自己计算出来。我是否缺少解决方案,或者 JDBI 是否真的具有 querying/inserting 的不同功能?

我认为对于两个方向,都需要关于 bean 的相同信息,所以我不明白为什么插入,它无法自己找出字段。这种差异是否有原因,或者我只是没有看到明显的东西?

Jdbi 旨在作为一个便利层,以便更轻松地使用 Java 中的 SQL 数据库。

给 Jdbi 一个 SQL 语句和一些参数,库将执行它并将结果(如果有)填充到某个对象中 - 结束。

生成 SQL 不是 Jdbi 的目标,尽管我们确实通过模板提供了一些小的便利,例如@BindList.

来自project documentation(强调已添加):

Jdbi is not an ORM. There is no session cache, change tracking, "open session in view", or cajoling the library to understand your schema.

Instead, Jdbi provides straightforward mapping between SQL and simple tabular data structures.

You bring your own SQL, and Jdbi only runs the commands you tell it to—​the way God intended.