在PostgreSQL的where子句中使用XML列
我想为一些数据库中包含XML内容的列提供where子句。我在在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中注
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)