我希望为某些DB支持hibernate
中包含XML内容的列的where子句。我通过扩展Oracle
类并通过org.hibernate.dialect.OraclexDialect
方法注册xml函数,在registerFunction
中实现了这一点。生成的查询示例:
SELECT *
FROM OM_PERSON this_
WHERE xmltype.createxml(this_.config_xml).existsNode('/*[condition/text()="19943"]')=1;
在hibernate
(For Oracle
)中注册的功能:
xmltype.createxml(?1).existsNode(?2)
现在我想支持PostgreSQL
(首选版本: 9.6 ),我无法找到任何等效功能。所以我的问题是Oracle
中的上述PostgreSQL
查询是否有任何等效的函数/声明?
答案 0 :(得分:1)
PostgreSQL有一个函数XMLEXISTS
,所以你的查询看起来像:
SELECT *
FROM OM_PERSON x
WHERE XMLEXISTS('/*[condition/text()="19943"]' PASSING x.config_xml)
我不知道如何在Hibernate中使用它。