`
flashing
  • 浏览: 350088 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

grails多对一关联查询的路径问题

 
阅读更多

比较悲催的调了一晚上,因为以前没在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,否则会重复。

 

 

1
1
分享到:
评论

相关推荐

    Grails Grails Grails

    Grails Grails Grails Grails Grails

    Grails权威指南 Grails权威指南

    Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南

    Eclipse下搭建Grails项目

    Grails项目的应用越来越多,而对于初学者来说,在Eclipse下搭建Grails项目是一个难题,这个文档将教会你如何搭建Grails项目,希望对你有所帮助。

    grails框架

    grails的插件系统也是其亮点之一。首先,和rails,django等web框架类似,基于微内核的思想,插件(可重用模块)是框架的一等公民。grails除了核心模块以外的功能几乎都是通过插件方式实现的。实际上,一个grails插件...

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

    在学习任何东西之前,最重要的是培养兴趣,Groovy世界最耀眼的技术之一--Grails相信大家早已耳闻,我将通过Grails实战系列文章 向您展现Grails的迷人风采,使您感受到Grails的魅力,以至疯狂地爱上Grails,并坠入...

    Grails登陆实例

    一个Grails登陆的实例,包含密码加密等等

    grails 1.0.4

    Grails尽量为更多现有的Java项目创建一个全面的框架(不仅局限于视图处理),这和当前一些Java框架提供给用户的一种AnemicAPI形成了明显的对比。Grails的出现并不是偶然的,而是随着Web应用的日趋复杂及Web2.0和Ajax...

    grails入门经典

    grails grails入门经典 grails入门 grails例子 grails资料 通过自学一点点积累起来的,相信对你有帮助的。

    grails框架数据查询

    NULL 博文链接:https://niuniufei.iteye.com/blog/2292361

    Grails1.1中文文档

    Grails1.1中文文档

    grails

    grails-2.1.zip.001

    Grails 教程

    Grails是一个full-stack框架,它借助于核心技术与相关的插件(plug-in)来解决Web开发中方方面面的问题,其中包括: 易于使用的基于Hibernate的对象-关系映射(ORM)层 称为Groovy Server Pages (GSP)的表现层技术 ...

    grails+Xfire webservice

    grails+Xfire webservice

    Grails GORM查询.pdf

    简单介绍grails的查询操作,已经类似与hibnatate的查询方式

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

    Grails入门指南中文pdf -- 针对grails1.0.4更新,附加idea8 开发grails的流程

    grails框架心得

    用grails开发过程中,项目优化配置,系统间调用等的总结。

    Grails标签

    Grails标签 主要介绍了grails的标签的一个帮助文档

    Grails中文参考手册

    Grails 中文 参考手册

    grails-core源码

    grails核心源码,版本2.2.2,可以给对grails开发感兴趣的朋友做学习参考。

Global site tag (gtag.js) - Google Analytics