首页 > 解决方案 > 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.propertiesspring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect

我将感谢您的帮助,在此先感谢。

标签: javapostgresqlhibernatespring-data-jpa

解决方案


感谢@andrewjames 的指示,我通过将 json 字段转换为文本解决了这个问题


推荐阅读