我正在寻找一种更简单的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
}

所以基本上我需要的是一种可以找到带有UserIntegrationIntegrationtype.name = "someTypeName"的方法

换句话说,我正在寻找UserIntegration.findByIntegrationTypeName("someTypeName");
显然不存在这样的动态查找器,但是有没有更简单的常规方法呢?我目前可以找出所有类型为“someTypeName”的Integration对象,然后在findAllByIntegration中使用此集成,但是如果存在的话,寻找一种更简单的解决方案,最好是动态查找器。

最佳答案

您也可以使用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'] )

10-07 13:16