gpt4 book ai didi

java - 如何使用 Hibernate 作为非阻塞 ORM 与 Vert.x

转载 作者:行者123 更新时间:2023-11-30 06:41:54 25 4
gpt4 key购买 nike

我目前有一个 Vert.x 代码库。我使用的是 Golang,但 Golang 有点烂,而且没有好的 ORM。但显然,Vert.x 也没有好的 ORM,主要是因为 Vert.x 是非阻塞的,而大多数用于 Java 的 ORM 都是基于阻塞 API。

无论如何,我有一个具体问题 - 我读到 Hibernate/JPA 可以与 Vert.x 一起使用 - 我们可以做的是将 Hibernate 调用放在不同的 Verticle 中,然后它将是非阻塞的。

这是个好主意吗?有人可以展示使用 2 个不同的 Vert.x verticle 执行此操作的示例吗?

如果它不是一个好主意,那么使用什么可能是一个好的 ORM?裸 SQL 调用起初听起来很酷,但对于迁移和其他东西,可能会有点疯狂。

最佳答案

@tsegismont 和往常一样,已经在评论中提供了一个很好的解决方案。我只想澄清以下句子:

I read that Hibernate/JPA could be used with Vert.x - what we could do is put the Hibernate calls in a different Verticle and then it would be non-blocking

这里有真假两部分:

Hibernate/JPA could be used with Vert.x

没错。通过将阻塞代码放在 worker Verticle 中,您不会阻塞 Vert.x 事件循环,这允许基于 JDBC 的框架与 Vert.x 一起工作

put the Hibernate calls in a different Verticle and then it would be non-blocking

错了。您不会使 Hibernate 成为非阻塞的。 JDBC 本质上是阻塞的,解决这个问题的方法并不多(尽管 R2DBC 是一个很好的举措)。您将使用与之前相同的线程池,但具有相同的限制。

关于java - 如何使用 Hibernate 作为非阻塞 ORM 与 Vert.x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54384677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com