在PostgreSQL的where子句中使用XML列

在PostgreSQL的where子句中使用XML列,sql,xml,oracle,postgresql,hibernate,Sql,Xml,Oracle,Postgresql,Hibernate,我想为一些数据库中包含XML内容的列提供where子句。我在Oracle中通过扩展org.hibernate.dial.OraclexDialect类并通过registerFunction方法注册xml函数实现了这一点。生成的查询示例: SELECT * FROM OM_PERSON this_ WHERE xmltype.createxml(this_.config_xml).existsNode('/*[condition/text()="19943"]')=1; 在hibernate中注

我想为一些数据库中包含XML内容的列提供where子句。我在
Oracle
中通过扩展
org.hibernate.dial.OraclexDialect
类并通过
registerFunction
方法注册xml函数实现了这一点。生成的查询示例:

SELECT *
FROM OM_PERSON this_
WHERE xmltype.createxml(this_.config_xml).existsNode('/*[condition/text()="19943"]')=1;
hibernate
中注册的函数(对于
Oracle
):

现在我也想支持
PostgreSQL
(首选版本:9.6),但我找不到任何等效函数。因此,我的问题是,在
PostgreSQL
中是否有与上述
Oracle
查询等价的函数/语句?

PostgreSQL有一个函数,因此您的查询可以如下所示:

SELECT *
   FROM OM_PERSON x
  WHERE XMLEXISTS('/*[condition/text()="19943"]' PASSING x.config_xml)
我不知道如何在Hibernate中使用它

SELECT *
   FROM OM_PERSON x
  WHERE XMLEXISTS('/*[condition/text()="19943"]' PASSING x.config_xml)