gpt4 book ai didi

java - 下载 Postgres 大对象后将 autoCommit 设置为 true 的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-01 10:46:56 27 4
gpt4 key购买 nike

我正在使用 PostgreSQL 大对象 API 来存储二进制文件。我需要实现一个资源来下载该文件。下载资源产生“应用程序/八位字节流”响应。我看到,下载完成后我应该将“自动提交”返回为“true”。如果我在“finally”中设置“自动提交”(如下面的代码所示),则不会下载该文件。

我是否需要实现一些 InputStream 扩展,并且仅在关闭流时将“自动提交”设置为“true”?这里采取的最佳方法是什么?

 try (Connection connection = Portal.getInstance().getConnectionProvider().getConnection())
{
try
{
connection.setAutoCommit(false); //large objects cannot be used in auto commit mode
PGConnection pgConnection = connection.unwrap(PGConnection.class);
LargeObjectManager largeObjectManager = pgConnection.getLargeObjectAPI();
LargeObject largeObject = largeObjectManager.open(largeObjectId, LargeObjectManager.READ);
return largeObject.getInputStream();
}
finally
{
//connection.setAutoCommit(true);
}

最佳答案

仅返回输入流并不构成下载。您必须完成下载,也就是说将输入流读到底,然后设置自动提交。

关于java - 下载 Postgres 大对象后将 autoCommit 设置为 true 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34130904/

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