一个大坑,使用jpa原生sql查询MySQL的JSON类型时,返回一个字符串“{”。百思不得其解,查全网没有人提到这个问题。stackoverflow.com 也看了,没有。无奈。
原来查询语句示例:
SELECT id, JSON_OBJECT('title','文章标题1','picUrls','1.jpg,2.jpg') AS extra
Spring boot jpa代码:
@Query(nativeQuery = true, value = "...", countQuery = "... ")
public Page<Map<String,Object>> getXXXDynamicList(String userId,
String endTime, Pageable pageable);
返回数据extra 只有一个字符"{",莫名其妙。最后想着转化一个数据类型就好了。
CAST(extra as char)
解决方案:
SELECT id, CAST( JSON_OBJECT('title','文章标题1','picUrls','1.jpg,2.jpg') AS CHAR) AS extra

本文解决了一个特殊的问题,在使用Spring Boot JPA执行原生SQL查询MySQL的JSON字段时,返回结果只显示了一个字符{。通过调整查询语句,利用CAST函数将JSON转换为CHAR类型,成功获取了完整的JSON数据。
790

被折叠的 条评论
为什么被折叠?



