一个大坑,使用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