You need to enable JavaScript to run this app. 使用Spring Data JPA Stream流式查询时出现字符编码错误
优惠活动
大模型
产品
解决方案
定价
更多

使用Spring Data JPA Stream流式查询时出现字符编码错误

Spring Data JPA 流式全量查询字符编码失效问题

代码实现

Repository层接口定义

@QueryHints(value = {
    @QueryHint(name = HINT_FETCH_SIZE, value = "" + Integer.MIN_VALUE),
    @QueryHint(name = HINT_CACHEABLE, value = "false"),
    @QueryHint(name = HINT_READONLY, value = "true"),
})
Stream<Book> findAllBy();

Service层业务调用逻辑

try (var allBooks = bookRepository.findAllBy()) {
    allBooks.forEach(book -> {
        logger.info("Coming book name={}", book.getName());
        // 手动detach实体释放内存
        entityManager.detach(book);
    });
}

问题现象

  • 执行流式查询获取全量数据时,书名字段出现乱码,典型乱码格式为????、en ???? ??、????? ????? ??
  • 已参照现有公开方案,在数据库连接URL中配置编码参数适配,问题仍未解决

最终解决方式

  • 设置JVM环境变量-Dfile.encoding=utf8,配置完成后乱码问题彻底解决

内容的提问来源于stack exchange,提问作者Sha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.01 19:45:04