Grails 常用检索

1 就是用 groovy.sql.Sql 和java 的Sql一样一样的 看api就行了 事例代码

import groovy.sql.Sql
def dbConn = new Sql(dataSource);

  

2 就是用像Hibernate Criteria  差不 几个事例代码 (一定要注意类型)

def regionStat = RegionStat.createCriteria().list {
    	and {
    		'in'('regionBlockLocationId', RBLMap.keySet().collect {G.parseInt(it)})
    		or {
        		     gt('markUp', 100)
        		     lt('markUp', -100)
    		}
    		eq('weekend', G.dateFormat(params.weekend))
    	}
    }

 

User.createCriteria().list{
				projections{
					property('username')
					property('userRealName')
				}
				and{
					if(userNameValuelist){
						"in"("username",userNameValuelist)
					}else{
						eq("id",Long.parseLong("-10"))
					}
					if(!popedom){
						eq('username',g.loggedInUsername().toString())
					}
					eq("enabled",true)
				}
			}.each{u->
				listResult.userNameKeylist += (u[1] + ':' + u[0])
				listResult.contractRealNameMap[u[0]] = u[1]
			}
    	return ChannelInfo.createCriteria().list {
        	if (!params.channelType) {
        		/**
        		 * 频道管理
        		 */
            	and {
            		eq('relatedId', 0)
            	}
            	order('sortIndex', 'asc')
        	} else {
        		/**
        		 * 内容管理
        		 */
        		or {
            		and {
            			not {
            				eq('relatedId', 0)
            			}
            			eq('relatedId', params.channelType?.toInteger())
            		}
            		eq('id', params.channelType?.toLong())
        		}
            	order('sortContent', 'asc')
        	}
        }
    

  

分页

AdsPosition.createCriteria().list {
    				and {
    	    			eq('positionGroup', 'HOME_RECOMMENDATION')
    				}
    				order('positionIndex', 'asc')
    				maxResults(Integer.parseInt("${params.max}"))
    				firstResult(Integer.parseInt("${params?.offset ? params.offset:0}"))
    			}

 

listResult.total = AdsPosition.createCriteria().get {
        		projections {
        			rowCount()
        		}
        		and {
	    			eq('positionGroup', 'HOME_RECOMMENDATION')
	    		}
        	}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值