如何将@添加到postgres hibernate方言?

zhm*_*sat 5 postgresql full-text-search hibernate hql

我们有一个使用GIN索引的全文搜索的本机查询,如下所示:

CREATE INDEX idx_column1 ON table1 USING gin (to_tsvector('english', column1));

SELECT *
FROM table1
where to_tsvector('english', column1) @@ to_tsquery('searchedText')
Run Code Online (Sandbox Code Playgroud)

但是,我们无法在HQL中复制此查询,因为符号@上的hibernate错误.如何在hibernate方言中添加符号@?

Ang*_*gga 2

您可以在此链接中找到它,该链接将引导您:

  • 认识到 SQLFunction 必须返回一个值,并且在 HQL 中使用时必须采用表达式形式(例如 fts(body, 'dog') = true - fts(body, 'dog') 在 HQL 中不起作用)
  • 为 PG FTS 创建一个 Hibernate SQLFunction;和
  • 请记住,表达式“to_tsvector(body) @@ to_tsquery('dog')”计算结果为布尔值