Grails GORM按对象属性的属性查找

时间:2015-10-20 16:21:49

标签: grails groovy gorm

我正在寻找一种更简单的grails方式(如果存在)来实现以下目标:

我的UserIntegration.groovy域类:

class UserIntegration {
 User user
 Integration integration
 // rest of code
}

我的Integration.groovy域名:

class Integration {
 SomeType type
 // rest of code
}

我的SomeType.groovy域名:

class SomeType {
 String name
 // rest of code
}

基本上我需要的是一种方式,以便找到UserIntegration Integration type.name = "someTypeName"

换句话说,我正在寻找UserIntegration.findByIntegrationTypeName("someTypeName");

显然,这样一个动态查找器不存在,但是有没有更容易的groovier方法呢?我现在可以找到所有具有type =“someTypeName”的Integration对象,然后在findAllByIntegration中使用此集成,但如果存在则寻找更简单的解决方案,最好是动态查找器。

2 个答案:

答案 0 :(得分:0)

您也可以使用HQL执行相同的操作

def list = UserIntegration.executeQuery(from UserIntegration userInt 
                                        inner join fetch userint.integration integration 
                                        inner join fetch integration.type sometype 
                                        where sometype.name =:name,[name:'someTypeName'] )

答案 1 :(得分:0)

UserIntegration.createCriteria().list(max:1){
'integration'{
      'type'{
           eq('name',"someTypeName")
       }
    }
}

希望它有效