hibernate Quarkus应用程序的原生SQL方法

yruzcnhs  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(142)

来自Dropwizard,我想给予Quarkus一个尝试。
我的问题是如何设置一个SQL中心方法,如JDBI,从Quarkus提供的功能中受益:React式、连接池管理、事务。
我很高兴使用JDBI作为数据库库,它是Dropwizard的标准配置:

  • 使用完整的Postgres功能(JSONB,Postgis,...)编写普通SQL。
  • 方便的参数和结果Map。
  • 事务、批的注解。
  • 注意准备好的陈述。

这个例子展示了它的方法,如果你不熟悉的话(非常低的代码,注解中的SQL):

public interface UserDao {
    @SqlQuery("SELECT * FROM users WHERE id = :id")
    @UseRowMapper(UserMapper.class)
    User getUser(@Bind("id") int id);
}

字符串
我喜欢使用更好的postgres特性,并认为使用SQL可以达到目的。我对Hibernate或Panaches的实体Map和查询语言不感兴趣,但如果我需要用它来处理Map对象,那就这样吧。
React式Postgres驱动程序允许您编写自定义SQL,但似乎不像JDBI那样提供管理准备好的语句和Map的工具(我预见到了大量的样板代码)。
有尝试集成JDBI for Quarkus,但似乎处于早期阶段/采用率低/文档很少。
使用类似工作流程的人有什么提示吗?或者我错过的教程?

cfh9epnr

cfh9epnr1#

使用Quarkus 2.16.x的JDBI有很好的运气。没有使用JBDI扩展--在第一次开始这个JDBI/Quarkus项目时并不知道它--但回头看,没有看到它的价值……但可能缺少了一些东西。
或多或少,我们让一个生产者制作Jdbi句柄,然后我们就像“正常”一样使用Jdbi。
效果相当不错;我们使用它来简单地插入/更新一些跟踪记录,然后读取/选择更大的OLAP类查询。在这两种情况下,使用接口方法,有点像上面的注解,但使用外部SQL文件(通过UseClasspathSqlLocator)。
HTH!

相关问题