java - Json 字段已触发 -- JDBC 类型没有方言映射:来自 nativeQuery 的 1111
问题描述
我有一个从数据库中选择数据的本机查询,我正在使用 postgrsql、hibernate 和 spring boot 与 java ...我试图根据 where 子句中的一些标准找到一个用户,但我得到了"No Dialect mapping for JDBC type: 1111"
由 json 字段引起的错误,我该如何克服这个错误?这是我的代码:
EntityManager em = entityManagerFactory.createEntityManager();
List<Object[]> resultat = new ArrayList<>();
String sqlString = "SELECT u.name, u.age, u.address, u.phone, u.activated FROM user as u ";
Query query = em.createNativeQuery(sqlString);
List<User> resultats = query.getResultList();
em.close();
用户实体的名称是文本,年龄是数字,地址是地址对象,电话是 json 对象。
(由于某些原因,我需要使用正则表达式清理 listOperators 的值,它适用于 posgrsql)。
我使用的方言application.properties
是spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
我将感谢您的帮助,在此先感谢。
解决方案
感谢@andrewjames 的指示,我通过将 json 字段转换为文本解决了这个问题
推荐阅读
- c# - 进入和离开对象时如何制作弹出表单?C#
- ros - ROS Launcher 文件导致 roslaunch 出错
- c# - 执行 dotnet ef 迁移 remove 仅恢复模型快照
- python - 在 Plotly 中显示带有一条线的折线图的图表标签
- android - Google Drive Android - OAuth 同意屏幕显示错误的应用名称
- flutter - FlutterError(查找已停用小部件的祖先是不安全的)
- amazon-web-services - Terraform pathexpand 函数在复杂项目中不起作用?
- c++ - '-DLOCAL' 标志在 C++ 编译中的作用
- python - 使用 Python 删除大文件的每 5 个字节
- apache - 如何以非 root 用户身份运行 Apache?