我在MemSql数据库中有一个表,其中包含一个JSON类型的列.我正在尝试执行以下查询.select tweet from tweets_json;推文列是JSON列.这是我用来执行此查询的代码.public ListString getTweets(){Query q = entityMan...
我在MemSql数据库中有一个表,其中包含一个JSON类型的列.
我正在尝试执行以下查询.
select tweet from tweets_json;
推文列是JSON列.
这是我用来执行此查询的代码.
public List<String> getTweets(){
Query q = entityManager.createNativeQuery("select tweet from tweets_json");
List<String> resultList = query.getResultList();
}
我期望结果是一个字符串列表和每个字符串来表示JSON.
问题是我将字符串转换为单个Character对象,该对象仅包含JSON的第一个字符{.
无论我使用的列表项的类型如何,结果始终是带有打开的大括号符号的Character列表.
我尝试使用List< Object []>,List< String []> ;, List< Object> ;, List< JsonElement>并且所有人都回归相同的结果.
我甚至试图不指定列表元素的类型,只返回一个List,结果仍然相同.
我怎样才能获得整个JSON以及这个问题的根本原因是什么?
解决方法:
您需要使用JSON_EXTRACT_STRING函数.
select JSON_EXTRACT_STRING(tweet,0) from tweets_json;
确切的功能定义是:
JSON_EXTRACT_<type>(json, keypath)
你可以在这里找到例子:
https://docs.memsql.com/sql-reference/v6.7/json_extract_type/
和这里
Reading JSON from MEMSQL
关于使用EntityManager / HibernateSession时的常见情况,用户类型是nessesary https://vladmihalcea.com/how-to-map-json-objects-using-generic-hibernate-types/
本文标题为:java – 使用带有MemSql的JPA本机查询选择json列
基础教程推荐
- SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理 2023-01-23
- Spring如何通过注解存储和读取对象详解 2023-03-21
- 基于Java实现双向链表 2022-11-12
- SpringBoot Web开发之系统任务启动与路径映射和框架整合 2023-04-12
- BeanUtils.copyProperties()所有的空值不复制问题 2023-01-08
- jsp导出excel并支持分sheet导出的方法 2023-08-03
- Java实现经典游戏Flappy Bird的示例代码 2022-11-05
- MyBatis实现批量插入方法实例 2023-06-24
- Java类和对象的设计原理 2023-02-19
- Java实现简单酒店管理系统 2022-11-16