我在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列
- java spring MappingJacksonJsonView在mongodb ObjectId上没有做toString 2023-10-31
- java中Timer定时器的使用和启动方式 2023-08-10
- SpringBoot @ExceptionHandler与@ControllerAdvice异常处理详解 2023-06-30
- Linux 下java jps命令使用解析详解 2023-08-01
- Java实现插入公式到PPT的示例代码 2023-02-28
- MyBatis-Plus 集成动态多数据源的实现示例 2023-02-11
- Spring事件监听器之@EventListener原理分析 2023-08-07
- Java利用遗传算法求解最短路径问题 2022-12-08
- java开发ShardingSphere的路由引擎类型示例详解 2023-03-31
- Netty网络编程实战之开发聊天室功能 2023-06-10