在Grails控制器类中使用静态"hasOne"属性

Nei*_*man 1 grails domaincontroller

希望这将是一个容易回答的问题.我在Grails中创建了一个名为player的类,其中包含以下信息:

class Player {
 String steamId
 String name
 String portrait
 static hasMany = {playerStatistics:PlayerStatistics}
 static hasOne = {playerForumProfile:PlayerForumProfile}
}
Run Code Online (Sandbox Code Playgroud)

为了澄清,Player对象可以有一个PlayerForumProfile对象,但始终在PlayerForumProfile对象之前创建播放器对象.我的问题是访问与PlayerForumProfile类的控制器中的"hasOne"属性关联的playerForumProfile对象.我曾经假设这样做:

    def playerForumProfileInstance = new PlayerForumProfile()
    def playerInstance = Player.get(params.id)

    playerForumProfileInstance = playerInstance.playerForumProfile
Run Code Online (Sandbox Code Playgroud)

会导致将与playerInstance对象关联的PlayerForumProfile对象拉入playerForumProfileInstance变量,但是当我尝试这个时,Grails会抛出一个错误,告诉我没有像playerForumProfile这样的属性.是否可以以这种方式访问​​hasOne属性的对象,还是需要做其他事情?

编辑:我也尝试修改Player类,因此它包含一个名为playerForumProfile的变量并编辑PlayerForumProfile,因此它有一个belongsTo声明,但这在运行我的应用程序时会导致空指针异常.

编辑:更多信息,我从头开始创建了一个新的grails应用程序并创建了它在Grails文档中显示的方式,它运行没有问题所以我认为它可能更容易只是启动一个新的应用程序和复制文件结束了.

amr*_*mra 5

GORM中有一个功能:http://grails.org/doc/latest/ref/Domain%20Classes/hasOne.html