希望这将是一个容易回答的问题。我在 Grails 中创建了一个名为 player 的类,其中包含以下信息:
class Player {
String steamId
String name
String portrait
static hasMany = {playerStatistics:PlayerStatistics}
static hasOne = {playerForumProfile:PlayerForumProfile}
}
为澄清起见,一个 Player 对象可以有一个 PlayerForumProfile 对象,但玩家对象总是在PlayerForumProfile 对象之前创建。我的问题是访问与 PlayerForumProfile 类的控制器中的“hasOne”属性关联的 playerForumProfile 对象。我曾假设这样做:
def playerForumProfileInstance = new PlayerForumProfile()
def playerInstance = Player.get(params.id)
playerForumProfileInstance = playerInstance.playerForumProfile
会导致将与 playerInstance 对象关联的 PlayerForumProfile 对象拉入 playerForumProfileInstance 变量中,但是当我尝试这样做时,Grails 会抛出一个错误,告诉我没有像 playerForumProfile 这样的属性。是否可以以这种方式访问 hasOne 属性的对象,还是我需要做其他事情?
编辑:我还尝试修改 Player 类,使其包含一个名为playerForumProfile的变量,并编辑 PlayerForumProfile 使其具有belongsTo声明,但这在运行我的应用程序时一直导致空指针异常。
编辑:更多信息,我从头开始创建了一个新的 grails 应用程序,并按照它在 Grails 文档中的显示方式创建了关系,它运行没有问题,所以我认为启动一个新应用程序并复制可能更容易文件结束。