春季数据jpa中的春季批次和真空度已满

时间:2020-08-25 15:16:25

标签: java spring-boot hibernate spring-data-jpa spring-batch

根据使用jpa的postgres db中的真空度,我有一个问题。

据我所知,spring batch具有它自己的事务管理,但是我们需要一种机制,该机制可以定期在特定表上完全运行真空。我的主要问题是我无法在事务中完全运行真空,并且我不知道如何在春季批处理中禁用事务管理(但是我认为这是个坏主意,所以我最好不要这样做)。 / p>

我有两个可行的解决方案(但都不好,但是我找不到其他解决方案):

  1. 我运行的sql是“ END TRANSACTION; VACUUM FULL tablename”
  2. 我注入数据源并在创建语句时使用数据源并在其中运行它。

第一个解决方案很吓人,如果我在别人的代码中找到类似的东西,我可能会感到惊讶。

第二种解决方案也不太好(根据Spring Boot 2.3和Java 11项目中可用的所有工具)。

禁用春季批处理事务管理的解决方案可能是最糟糕的(我不确定我是否只能针对特定的工作禁用它,很多事情也会失败,所以我不喜欢那个想法)。

是否有可能以其他方式进行选择?还是我应该只选择一个我已经描述过的命题?

0 个答案:

没有答案