【问题标题】:Grails: Convert the Hql query to GORMGrails:将 Hql 查询转换为 GORM
【发布时间】:2013-01-10 13:41:16
【问题描述】:

请使用标准或使用某些 API 将以下 hql 查询转换为 GORM。我是 grails 的新手,我进行了足够多的搜索,但我没有得到任何积极的解决方案,如果它很简单,请原谅我。

MappingDetail.executeQuery("select map.id from MappingMaster as map where map.id = (select mapdetail.id from MappingDetail as mapdetail where mapdetail.rawdata_template.id=(select rawdata.id from RawDataMasterTemplate as rawdata where rawdata.name比如:name))",[name:'%Rick%'])

【问题讨论】:

    标签: grails orm hql grails-orm


    【解决方案1】:

    为什么必须在这里使用标准?我认为这是您使用 HQL 的选择。

    def raw = RawDataMasterTemplate.findByNameLike('%Rick%')
    def detail = MappingDetail.findByRawdata_template(raw)
    def master = MappingMaster.get(detail?.id)
    

    【讨论】:

    • 为什么三个数据库查询比一个更好?
    • 我没有说它们是,我自己宁愿使用 op 的 HQL。但他说他想要 GORM。我怀疑这也可以用标准来写。
    【解决方案2】:

    测试一下:

    MappingMaster.withCriteria {
      createAlias 'mappingDetail', 'mp'
      createAlias 'mp.rawDtaMasterTemplate', 'rd'
      projections {
        property 'id'
      }
      ilike 'rd.name', '%Rick%'
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 2014-06-26
      • 2020-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多