gpt4 book ai didi

java - 如何为 SQLQuery 设置超时?

转载 作者:行者123 更新时间:2023-11-30 10:12:59 28 4
gpt4 key购买 nike

使用 querydsl-sql 创建 SQLQuery 的方法:

 protected final <T> T select(RelationalPathBase path, Function<SQLQuery, T> code) throws SQLException {
try (final Connection con = dataSource.getConnection()) {
return code.apply(new SQLQuery(con, SQLServer2008Templates.builder().printSchema().build()).from(getTable(path)));
}
}

使用查询的方法:

public List<Tuple> selectDataForProcess() throws SQLException {
return select(map, sqlQuery -> sqlQuery
.limit(sendSelectBatch)
.where(map.selectedOn.isNull())
.list(map.all()));

}

如何设置查询超时时间?

最佳答案

根据评论,我相信 datasource 是 spring 管理的。在数据源级别设置默认超时:

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
<!-- Sets default timeout to 5 seconds -->
<property name="defaultTimeout" value="5" />
</bean>

或者将单个查询包装在事务中并设置超时:

@Transactional(timeout=5)

关于java - 如何为 SQLQuery 设置超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51557872/

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