当前位置: 首页 > 知识库问答 >
问题:

我是否可以在Hibernate时使用SpringWeb通?

璩涛
2023-03-14

我正在尝试构建一个REST应用程序,有一天可能会有数百万客户机使用它。记住这一点,我们预计会收到很多请求。我想知道它是否会倾向于使用冬眠或Spring通量。我们的数据库模型是高度相关的,因此我们不得不拒绝mongo和其他非关系数据库。我有几个问题:

  1. spring-webflow和hibernate可以一起使用吗?
  2. 如果问题1的答案是否定的,Spring通量是否具有像hibernate这样的缓存功能?
  3. 如果问题1的答案是否定的,那么随着时间的推移,Spring通量的非阻塞方法是否会始终比Hibernate更快?
  4. Spring通量/冬眠有什么好处是我可能没有考虑的?

共有2个答案

鲁峰
2023-03-14

您可以同时使用R2DBC

邢烨烨
2023-03-14
  1. spring webflux和hibernate可以一起使用吗

当然可以。但是当前的Hibernate正在阻塞IO,因此您失去了spring webflux的非阻塞反应特性。Oliver Gierke(Spring数据项目负责人)最近宣布了一种反应式Java数据库连接(https://github.com/r2dbc),但此选项当前不可用。

这个问题已经在另一个堆栈溢出问题中得到了解决:Spring-Webflux和@Cacheable-Mono/Flux类型的缓存结果的正确方法

这个问题在前面很难回答。一般I/O相关的东西更“昂贵”,会耗尽您的性能。

 类似资料:
  • 在Spring Web中,我们可以使用注释@ExceptionHandler来处理控制器的服务器和客户端错误。 我曾尝试在web flux controller中使用此注释,但它仍然对我有效,但经过一些调查后,我在这里发现了这一点 Spring Web Reactive的情况更复杂。因为响应流是由不同的线程计算的,而不是执行控制器方法的线程,异常不会自动传播到控制器线程。这意味着@Exceptio

  • 问题内容: 对于此问题,我们希望避免编写特殊查询,因为该查询在多个数据库中必须有所不同。仅希望使用hibernate条件,我们希望能够转义特殊字符。 这种情况是需要转义特殊字符的原因: 假设我们在数据库中有表“ foo”。表’foo’仅包含1个字段,称为’name’。“名称”字段可以包含在数据库中可能被认为是特殊字符。此名称的两个示例是“ name_1”和“ name%1”。至少在Oracle中,

  • 我有一个字符串字段,它可能在前导和尾随处包含空白。我想修剪这些空白并使用返回修剪后的文本。如果文本为空,我想返回null。 当查看此链接上显示的实现示例时,我不确定如何创建一个获取字符串并返回字符串的方法,而不是创建方法。那么,如何根据给定的场景实现这种方法呢?

  • 我需要一个不可重入的读写锁,因为锁可能由获取它的线程以外的线程释放。(我意识到这一点时,我开始间歇性地获取非法监视器状态异常。) 我不确定不可重入是否是正确的术语。ReentrantLock允许当前持有锁的线程再次获取它。我不想要这种行为,因此我称之为“不可重入”。 上下文是我有一个使用线程池的套接字服务器。每个连接没有一个线程。请求可能由不同的线程处理。客户端连接可能需要在一个请求中锁定,在另一

  • 问题内容: 是否必须在使用注释和hibernate配置文件之间做出严格选择,还是可以在同一项目中同时使用两种方式? 我们有一个使用Hibernate 3.2.5和POJO配置文件的大型项目。该项目使用的是Hibernate Factory,而不是基于JTA的工厂。 以这种方式配置了一百多个POJO,原始开发人员团队不愿意切换到注释。 同时,我们需要用更多的POJO扩展项目,这些POJO我们愿意使用