Grails / Gorm和Postgresql Unaccent

时间:2014-03-31 13:41:47

标签: postgresql grails gorm unaccent

我有一个关于如何使用Grails的PostgreSQL的非强制扩展的问题。

我在法语中有很多描述,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%)

感谢您阅读

1 个答案:

答案 0 :(得分:1)

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

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

至少这是个主意。

修改

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