如何在复杂对象中使用带有toString的Grails findAll?

时间:2015-07-09 23:10:22

标签: grails gorm

有没有办法将Grails findAll用于复杂对象的toString?

我有一个名为Person的对象(示例)。

Person具有firstName和lastName属性,并且有一个toString方法返回" FirstName:" + firstName +" LastName:" + lastName

还有另一个对象,其中Person名为Group。 组具有Person的属性。

我想搜索:

Group.findAll{
    ilike("person.toString", "%FirstName%")
}

我得到以下内容:

could not resolve property: person.toString of: com.test.Group. Stacktrace follows:
Message: could not resolve property: person.toString of: com.test.Group
    Line | Method
->>  670 | doCall               in grails.gorm.DetachedCriteria$_list_closure2

有没有办法使用findAll与toString方法进行比较?我无法创建getFirstAndLastName,因为该对象是另一个项目的插件,无法修改。

1 个答案:

答案 0 :(得分:1)

  

有没有办法使用findAll与toString方法进行比较?

没有。在实体上调用toString或任何其他方法的唯一方法是检索它们,将它们带入应用程序,以便可以创建实例然后调用这些方法。如果toString碰巧返回了你可以模拟的东西,而没有实际调用该方法,那么你可能有选项,但问题的答案是“否”。

我希望有所帮助。