java - PSQL异常 : ERROR: could not identify an equality operator for type xml

标签 java postgresql hibernate jpa

JPQL:

select distinct ref 
FROM Data d 
  inner join d.reference ref 
WHERE d.role = 'admin'  
ORDER BY ref.id

此 JPA 查询失败并出现以下错误:

PSQLException: ERROR: could not identify an equality operator for type xml

版本:PostgreSQL 9.3 和 JDK 1.7

数据实体包含 xml 类型字段。查询中的ref指的是Data类型对象,即Data实体本身指的是Data类型的对象。 如果我们使用 PK 字段作为唯一值,但需要返回唯一对象而不仅仅是 id,它将起作用。我们使用 JPA 查询语言而不是 native 查询。有什么解决办法吗?

最佳答案

我假设 ref 的类型为 xml;如果没有,请显示您的表定义。

您可能必须将 ref 转换为 text 类型,因为 xml 没有定义相等性,您该如何处理 DISTINCT 却不知道什么是平等?

或者,您可以使用不同的数据类型或使用 CREATE OPERATORxml 上定义相等运算符。但是什么时候两个 XML 文档相等呢?

关于java - PSQL异常 : ERROR: could not identify an equality operator for type xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41016684/

相关文章:

java - Spring 3 通过注释进行任务调度在服务器上同时运行多个实例

java - CamelContext camelContext = SpringCamelContext.springCamelContext(appContext, false);在 Camel 版本 2.17.3 中弃用

sql - information_schema 中referential_constraints.unique_constraint* 列的NULL 值

Java使用多个表迭代HQL结果

java - 如何将内置的 hibernate 模式添加到本地Maven存储库中?

mysql - 通过 JPA EntityManager 执行创建表查询

java - 我如何监听此 Java 应用程序何时调整大小?

java - freemarker 模板和 smooks 中的注释

sql - 如何更新一张表并从 Postgres 中的相关表返回?

sql - 计算一行中为 NULL 的属性数