我想在某些数据库的 hibernate
中支持包含 XML 内容的列的 where 子句。我通过扩展 org.hibernate.dialect.OracleDialect
类并通过 registerFunction
方法注册 xml 函数,在 Oracle
中实现了这一点。生成的查询示例:
SELECT *
FROM OM_PERSON this_
WHERE xmltype.createxml(this_.config_xml).existsNode('/*[condition/text()="19943"]')=1;
在hibernate
中注册的函数(对于Oracle
):
xmltype.createxml(?1).existsNode(?2)
现在我也想支持PostgreSQL
(首选版本:9.6),但我找不到任何等效的功能。所以我的问题是在 PostgreSQL
中是否有与上述 Oracle
查询等效的函数/语句?
最佳答案
PostgreSQL 有一个函数 XMLEXISTS
,因此您的查询可以如下所示:
SELECT *
FROM OM_PERSON x
WHERE XMLEXISTS('/*[condition/text()="19943"]' PASSING x.config_xml)
我不知道如何在 Hibernate 中使用它。
关于sql - 在 PostgreSQL 的 where 子句中使用 XML 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47364320/