grails - 搜索不适用于该领域

标签 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()]
}

最佳答案

如果您的代码Grails会生成如下查询

其中更低的(this_.client_name)喜欢吗? 较低(this_.client_id)像? )

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

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

关于grails - 搜索不适用于该领域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20675315/

相关文章:

tomcat - 在 Tomcat 上运行 Grails 应用程序时遇到问题

json - 如何告诉 Grails 将 JSONNull 呈现为 null?

grails - Grails 3.0.1显示错误

grails - 设计领域模态类

grails - 解决方法:无法在Grails中的Vaadin中加载引导javascript:./../../VAADIN/vaadinBootstrap.js

json - Grails 3.2.9:使用Rest的Spring Rest Doc确保了有效负载处理异常:com.fasterxml.jackson.core.JSONParseException

grails - 在 Grails 中全局禁用乐观锁定

debugging - 我可以使用文本编辑器(例如 Sublime Text 2)调试 Grails 应用程序吗?

grails - 创建名称为 'transactionManager' : Cannot resolve reference to bean '' sessionFactory '' while setting bean property ' sessionFactory' 的 bean 时出错

grails - 从 GroovyShell 脚本访问 Grails 域类