比较悲催的调了一晚上,因为以前没在grails里面这么写过,所以不知道这算是个bug还是hibernate的查询dsl就是这么设计的。
两个类:
class Asset {
static hasMany = [stocks : AssetStock]
String name
}
class AssetStock {
static belongsTo = Asset
Asset asset
Date purchageDate
}
现在从One to many的many端进行查询
def results, total
def c = AssetStock.createCriteria()
results = c.list(max: 100, offset: 0) {
eq "asset.name", "打印机"
}
提示说找不到asset.name这个属性,调了一晚上也没搞定。
早上尝试做了点修改让这个代码好用了
def results, total
def c = AssetStock.createCriteria()
results = c.list(max: 100, offset: 0) {
createAlias("asset", "asset")
eq "asset.name", "打印机"
}
即必须createAlias给Path做路径关联,如果你有多个关联对象,那么都需要起alias。
但是有一种情况不用alias,即查询关联对象的主键ID的时候,可以这么写
results = c.list(max: 100, offset: 0) {
eq "asset.id", 1L
}
这也是文档里面的类似例子,完全是个误导。
顺便附个链接,是讲怎么从one的一端进行查询many的属性的:
http://johnrellis.blogspot.com/2010/05/relationship-advice-grails-one-to-many.html
重点是listDistinct和createAlias,否则会重复。
相关推荐
Grails Grails Grails Grails Grails
Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南
Grails项目的应用越来越多,而对于初学者来说,在Eclipse下搭建Grails项目是一个难题,这个文档将教会你如何搭建Grails项目,希望对你有所帮助。
grails的插件系统也是其亮点之一。首先,和rails,django等web框架类似,基于微内核的思想,插件(可重用模块)是框架的一等公民。grails除了核心模块以外的功能几乎都是通过插件方式实现的。实际上,一个grails插件...
在学习任何东西之前,最重要的是培养兴趣,Groovy世界最耀眼的技术之一--Grails相信大家早已耳闻,我将通过Grails实战系列文章 向您展现Grails的迷人风采,使您感受到Grails的魅力,以至疯狂地爱上Grails,并坠入...
一个Grails登陆的实例,包含密码加密等等
Grails尽量为更多现有的Java项目创建一个全面的框架(不仅局限于视图处理),这和当前一些Java框架提供给用户的一种AnemicAPI形成了明显的对比。Grails的出现并不是偶然的,而是随着Web应用的日趋复杂及Web2.0和Ajax...
grails grails入门经典 grails入门 grails例子 grails资料 通过自学一点点积累起来的,相信对你有帮助的。
NULL 博文链接:https://niuniufei.iteye.com/blog/2292361
Grails1.1中文文档
grails-2.1.zip.001
Grails是一个full-stack框架,它借助于核心技术与相关的插件(plug-in)来解决Web开发中方方面面的问题,其中包括: 易于使用的基于Hibernate的对象-关系映射(ORM)层 称为Groovy Server Pages (GSP)的表现层技术 ...
grails+Xfire webservice
简单介绍grails的查询操作,已经类似与hibnatate的查询方式
Grails入门指南中文pdf -- 针对grails1.0.4更新,附加idea8 开发grails的流程
用grails开发过程中,项目优化配置,系统间调用等的总结。
Grails标签 主要介绍了grails的标签的一个帮助文档
Grails 中文 参考手册
grails核心源码,版本2.2.2,可以给对grails开发感兴趣的朋友做学习参考。