【发布时间】:2018-07-23 08:02:40
【问题描述】:
Hibernate 查询返回结果时间过长如何处理。我已经配置了查询超时,但是在调试时它显示数据库正在通过返回数据来响应,但是休眠无法映射给定的数据。
我不希望这种情况在生产中发生,因为我的查询可能会因为休眠没有响应而失败。
我需要一个解决方案来摆脱这种情况。
setProperty("javax.persistence.query.timeout", 180000);
JPAQuery query = queryFactory.select(....)
do{
List<Tuple> data = query.fetch().limit(5000);
//--------
} while(flag)
上面的代码适用于较小的数据,但对于某些数据集/条件,数据很大,最终休眠没有响应。
【问题讨论】:
-
我们需要更多信息,例如您的一些代码、您如何构建查询、pojo 是如何、您如何将查询结果包装到您的类中等等
-
查询超出普通 querydsl,并通过休眠 DAO 存储库查询。数据库中有 130 列,其中 2 列包含大量数据。我们将其导出到 csv 文件。
-
基本上我希望休眠自动终止请求,如果它花费的时间太长
标签: java postgresql hibernate querydsl