1

我有一个关于如何将 PostgreSQL 的非重音扩展与 Grails 一起使用的问题。

我有很多法语描述,而 PostgreSQL 对口音不敏感。我安装了 unaccent 扩展,它在 PgAdmin III 上运行良好。

如何配置 Grails 和/或 PostgreSQL 以在我的控制器中使用 unaccent?

这是我的域:

Class Description {
   String content
   int type = -1
}

例如,我可以使用 GORM “翻译”下一个查询吗?

SELECT content 
FROM description 
WHERE unaccent(content) ILIKE unaccent(%myInputHere%)

谢谢阅读

4

1 回答 1

1

由于这是特定于 SQL 的,因此您需要在您的条件内使用SQL 限制。例如:

def myinput = params.myinputfieldname
def results = Description.createCriteria().list() {
  sqlRestriction "unaccent(content) ILIKE unaccent('%$myinput%')"
}

至少是这样的想法。

编辑

请注意,上述限制中的“内容”指的是实际的 SQL 列名,而不是域的字段名。

于 2014-03-31T13:58:54.667 回答