【问题标题】:Grails / Gorm and Postgresql UnaccentGrails / Gorm 和 Postgresql Unaccent
【发布时间】:2014-03-31 13:41:47
【问题描述】:

我有一个关于如何将 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%)

感谢阅读

【问题讨论】:

    标签: postgresql grails grails-orm unaccent


    【解决方案1】:

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

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

    至少是这样的想法。

    编辑

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

    【讨论】:

    • @ArrrghGrails 请注意,当您使用sqlRestriction 时,必须使用实际的列名而不是域对象的字段名。上面答案中使用的content反映了表中的列名。
    • @dmahapatro 好点(将编辑帖子以包含此警告)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多