Grails域中的瞬态属性

Đin*_*hâu 6 dns grails transient

我有一个名为People的Grails域名,我想检查每个人是否有孩子.孩子是其他人物.这是我的域名结构:

class People implements Serializable {

    static constraints = {
        name (nullable : false, unique : true)
        createdBy (nullable : false)
        creationDate (nullable : false)
    }

    static transients = ['hasChild']

    static mapping = {
        table 'PEOPLE'
        id generator: 'sequence', params : [sequence : 'SEQ_PK_ID']
        columns {
            id column : 'APEOPLE_ID'
            parentPeople column : 'PARENT_PEOPLE_ID'
        }
        parentPeople lazy : false
    }

    People parentPeople
    String name
    String description

    Boolean hasChild() {
        def childPeoples = People.createCriteria().count { 
            eq ('parentPeople', People) 
        }
        return (childPeoples > 0)
    }
}
Run Code Online (Sandbox Code Playgroud)

但我无法在任何地方调用people.hasChild().你能帮帮忙吗?非常感谢!

Hoà*_*ong 4

这是因为在 中eq ('parentPeople', People),Grails 无法理解“People”是什么(它是一个类)。您应该将“People”替换为this。例如:

static transients = ["children"]

    def getChildren() {
        def childPeoples = People.findAllByParentPeople(this, [sort:'id',order:'asc'])
    }
Run Code Online (Sandbox Code Playgroud)