0
JPQL:PSQLException:错误:无法识别的等号操作XML类型
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
Data实体包含一个xml类型字段。查询中的引用引用数据类型对象,即数据实体本身引用数据类型的对象。 这将工作,如果我们使用不同的PK领域,但需要返回唯一的对象不只是身份证。我们正在使用JPA查询语言而非原生查询。任何解决方案?
我猜他正在使用JPQL而不是SQL。 JPQL不需要“ON”条款,他正在加入关系。 –
是的,我给了JPQL查询。 ref是Data类型的,即Data实体本身具有对另一个Data实体的引用。我使用JPA(Hibernate)获取完整的数据对象。这就是为什么在这种情况下转换为文本或PK域的DISTINCT不适用的原因。 –
我明白了。那么,如果你使用的ORM比你不能指定类型转换的限制,你可以使用不同的数据类型或者为'xml'定义一个相等运算符。 –