搜索不在该领域工作

时间:2013-12-19 06:59:48

标签: grails

我的域类中有三个字段,即client_id,client_name,client_address。我想在list.gsp页面中搜索client_name的基本内容。我尝试过但不适合我。我是grails的新手。我是否遵循正确的方法或任何可能的解决方案?

list.gsp页面: -

    <g:if test="${flash.message}">
            <div class="message" role="status">${flash.message}</div>
        </g:if>
        <fieldset class="form">
            <g:form action="list" method="GET">
                <div class="fieldcontain">
                    <label for="query">Search for Client Name:</label>
                    <g:textField name="query" value="${params.query}"/>
                </div>
            </g:form>
        </fieldset>

ClientController.groovy: -

  def list(Integer max) {
    params.max = Math.min(max ?: 10, 100)


    def taskList = Client.createCriteria().list (params) {
        if ( params.query ) {
            ilike("client_name", "%${params.query}%")
            ilike("client_id", "%${params.query}%")
        }
    }

    [clientInstanceList: taskList, clientInstanceTotal: Client.count()]
}

2 个答案:

答案 0 :(得分:2)

使用您的代码格式化Grails将生成如下的查询

其中lower(this_.client_name)喜欢? 更低(this_.client_id)喜欢? )

我猜您需要将其更改为 OR 传导。

 def taskList = Client.createCriteria().list (params) {
        if ( params.query ) {
             or{
                ilike("client_name", "%${params.query}%")
                ilike("client_id", "%${params.query}%")
               }
        }
    }

答案 1 :(得分:0)

尝试使用Grails Rich-UI插件。在该插件中,自动完成选项可用.....