`
yanghzaini
  • 浏览: 7508 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

grails createCriteria,createAlias创建左连接查询

阅读更多
def QueryResult findAllInOutStock(String manInfoName,String supplieName,String wareName,
                                      Integer category,Integer inOutType,Date beginTime,
                                      Date endTime,Integer offset,Integer max){
        def list=TbInoutStock.createCriteria().list {
            //createAlias 第三个参数控制链接,
            //0:表示inner join,
            //1:表示left outer join ,
            //2:表示right outer join
            createAlias("manufacturers", "manufacturers",1)
            if(manInfoName!=null && !"".equals(manInfoName)){
                like("manufacturers.fullName","%"+manInfoName+"%")
            }
            if(supplieName!=null && !"".equals(supplieName)){
                createAlias("selfSupplieInfo","selfSupplieInfo",1)
                createAlias("supplier","supplier",1)
                or {
                    like("selfSupplieInfo.fullName","%"+supplieName+"%")
                    like("supplier.fullName","%"+supplieName+"%")
                }
            }
            if(wareName!=null &&!"".equals(wareName)){
                createAlias("ware","ware",1)
                like("ware.fullName","%"+wareName+"%")
            }
            if(category!=null){
                eq("manufacturers.category",category)
            }
            if(inOutType!=null){
                eq("inOutType",inOutType)
            }
            if(beginTime!=null){
                gte("inOutDate",beginTime)
            }
            if(endTime!=null){
                lt("inOutDate",endTime)
            }
            eq("status",1)
            if(offset){
                firstResult(offset)
            }
            if(max){
                maxResults(max)
            }
            order("inOutDate","desc")
        }
        def totalCount=TbInoutStock.createCriteria().count{
            createAlias("manufacturers", "manufacturers",1)
            if(manInfoName!=null && !"".equals(manInfoName)){
                like("manufacturers.fullName","%"+manInfoName+"%")
            }
            if(supplieName!=null && !"".equals(supplieName)){
                createAlias("selfSupplieInfo","selfSupplieInfo",1)
                createAlias("supplier","supplier",1)
                or {
                    like("selfSupplieInfo.fullName","%"+supplieName+"%")
                    like("supplier.fullName","%"+supplieName+"%")
                }
            }
            if(wareName!=null &&!"".equals(wareName)){
                createAlias("ware","ware",1)
                like("ware.fullName","%"+wareName+"%")
            }
            if(category!=null){
                eq("manufacturers.category",category)
            }
            if(inOutType!=null){
                eq("inOutType",inOutType)
            }
            if(beginTime!=null){
                gte("inOutDate",beginTime)
            }
            if(endTime!=null){
                lt("inOutDate",endTime)
            }
            eq("status",1)
        }
        QueryResult queryResult=new QueryResult()
        queryResult.list=list
        queryResult.totalCount=totalCount
        return queryResult
    }
分享到:
评论
1 楼 zywayh 2017-10-31  
您好,我想问一下,多表的联查怎么做,我们使用中间表,但是因为中间表没有关联,没办法用createAlias来链接查询,还有其他办法吗

相关推荐

    Eclipse下搭建Grails项目

    - 在Eclipse的classpath variable中设置`GRAILS_HOME`变量,指向Grails的安装目录,避免在创建或导入项目时手动添加库文件。 - 在`Windows -> Preferences -> Groovy`中,勾选"Disable Groovy Compiler Generating...

    grails框架数据查询

    **Grails框架数据查询** Grails是一个基于Java平台的开源Web应用框架,它采用Groovy语言,提供了MVC(Model-View-Controller)架构模式,旨在简化开发过程,提高开发效率。在Grails中,数据查询是核心功能之一,...

    在Eclipse里使用Grails类创建工具.pdf

    ### 在Eclipse中高效利用Grails类创建工具 在深入探讨如何在Eclipse环境中使用Grails类创建工具之前,我们先简要回顾一下Grails框架及其核心特性。Grails是一款基于Groovy语言的高性能Web应用开发框架,它遵循约定...

    一步一步学grails(5)

    2. 在Grails控制器中创建动态查询,利用`createCriteria`方法构建复杂的查询条件。 3. 使用`maxResults`和`firstResult`进行分页处理。 4. 在查询结果中获取总记录数,以实现分页导航。 5. `render`方法的使用,将...

    Grails Grails Grails

    1. **自动化配置和约定优于配置**:Grails 提供了许多默认配置,例如数据库连接、URL映射等,开发者只需按照约定编写代码即可,减少了配置工作。 2. **GORM(Grails Object Relational Mapping)**: GORM 是Grails...

    eclipse开发grails插件

    4. **创建Grails项目**:现在,你可以通过Eclipse的"New" -> "Grails Project"来创建一个新的Grails项目。选择合适的Grails版本和其他配置,然后Eclipse会自动生成项目结构。 5. **开发与调试**:在Eclipse中,你...

    grails login

    使用Grails命令行工具创建一个新的Grails应用,例如`grails create-app loginDemo`。这将在指定目录下生成一个完整的Grails项目结构。 **3. 数据库配置** Grails默认使用H2内存数据库,如需使用MySQL,需修改`...

    Grails权威指南 Grails权威指南

    7. **RESTful服务**:Grails支持创建RESTful API,这在当今的微服务架构中尤为重要。开发者可以轻松构建符合HTTP协议的API,实现前后端分离或者与其他系统集成。 8. **测试支持**:Grails提供了全面的测试工具,...

    grails-用户手册

    总结来说,《Grails用户手册》涵盖了从项目创建到部署运行的全过程,包括Grails的基础概念、MVC架构、持久化、插件系统、视图技术、URL映射、测试策略等多个方面。通过学习和实践,开发者可以充分利用Grails的强大...

    grails中文参考手册

    Grails遵循一套默认的规约,比如数据库连接、目录结构等,这减少了大量手动配置的需求。然而,当需要自定义时,可以通过`Config.groovy`配置文件进行修改。 5. **运行与测试** - **运行Grails应用**:使用`grails...

    学习grails框架时候自己写的例子

    标题提到的"学习grails框架时候自己写的例子"显然是一个用于实践Grails CRUD(创建、读取、更新、删除)操作的项目。 描述中提到了"自己分页,修改sql查询,带数据库",这表明这个例子涵盖了以下几个关键知识点: ...

    grails 配置mongodb数据库

    总结,配置Grails使用MongoDB数据库主要涉及以下几个步骤:安装MongoDB,添加MongoDB插件依赖,配置数据库连接,创建数据模型,实现业务服务,以及创建控制器处理请求。通过这样的配置和实现,我们就能在Grails中...

    Groovy轻松入门——Grails实战基础篇

    #### 搭建Grails环境及创建Grails Demo程序 **Groovy**是一种面向对象的编程语言,它运行于Java平台上,能够与Java代码无缝集成。而**Grails**则是一款基于Groovy的高性能、全栈式的Web应用框架。本篇文章将详细...

    Grails企业web应用开发与部署

    3. 创建项目:使用`grails create-app`命令创建新项目,Grails会自动生成项目的目录结构和基础文件。 三、Grails开发实践 1. GORM:Grails的ORM框架,支持关系型数据库如MySQL、PostgreSQL,也支持NoSQL数据库如...

    grails中文入门简介

    安装完成后,创建一个Grails应用程序是另一个重要的步骤,这可以通过命令行工具或者集成开发环境(IDE)来完成。Grails提供了一个默认的"Hello World"示例,帮助新手快速理解框架的基本结构。 Grails框架的配置通常...

    grails入门经典

    根据提供的部分内容,“mkdir web” 创建了一个名为 `web` 的目录,然后进入该目录并通过命令 “grails create-app racetrack” 创建了一个名为 `racetrack` 的 Grails 应用。创建完成后,通过 “cd racetrack” ...

    Grails入门指南中文第二版.pdf

    通过阅读《Grails入门指南中文第二版》,你将能够熟练地搭建Grails开发环境,创建并运行第一个Grails应用,掌握MVC模式下的开发流程,以及利用Grails的强大功能进行高效开发。这本书对于想要进入Grails世界的开发者...

    grails 中文第二版

    - 使用`grails create-app`命令快速创建一个新的Grails项目。 - 自动生成项目的基本结构,包括目录结构和必要的配置文件。 **Hello World示例** - 创建一个简单的控制器,实现基本的路由逻辑。 - 在视图中展示...

    Grails入门指南 -- 针对grails1.0.4更新

    - **动态查询**:支持基于动态条件的查询操作,增加查询灵活性。 - **界面美化**:通过布局和CSS美化页面,提升用户界面的设计感。 #### 三、Grails进阶 - **安全性**: - **用户认证**:实现用户登录、权限验证...

Global site tag (gtag.js) - Google Analytics