我在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列


基础教程推荐
- springboot自定义配置及自定义对象映射的全流程 2023-06-05
- JSP基于JDBC的数据库连接类实例 2023-08-03
- Spring Cloud Ribbon的使用原理解析 2023-03-11
- 【笔记】linux下的java环境配置 2023-09-01
- SpringBoot Web开发之系统任务启动与路径映射和框架整合 2023-04-12
- Java实现抠图片文字或签名的完整代码 2023-01-29
- JSP程序使用JDBC连接MySQL的教程 2023-08-03
- Java连接MongoDB的常用方法详解 2023-03-10
- 关于jd-gui启动报This program requires Java 1.8+的错误问题及解决方法 2022-11-11
- Java聊天室之实现使用Socket传递音频 2023-06-23