gpt4 book ai didi

hibernate - 带有抽象类的一对多Grails

转载 作者:行者123 更新时间:2023-12-02 14:45:42 26 4
gpt4 key购买 nike

在我们的应用程序中,我们有一个可以具有游戏和练习计划的Player,因此我们设计了抽象类Plan以及两个派生类GamePlan和PracticePlan。在数据库中,派生的类保存到具有“class”属性的单个表中。

当我们在特定玩家上使用getPlans()时,我们会获得所有计划,但是我们想知道如何仅获取游戏或练习计划。诸如player.getPracticePlans()或Player.PracticePlans(player_id)之类的东西。以下是我们的类(class)。

class Player  {

String name
static hasMany = [ plans : Plan]
}

abstract class Plan {
}

class PracticePlan extends Plan{
}

class GamePlan extends Plan{
}

注意:我们尝试使用以下方法:
def query = Player.where {
plans { class == "GamePlan" }
}

但是该类是保留关键字,并且不会编译。

最佳答案

我相信您可以执行以下操作以加载一个人的所有计划,然后过滤掉不需要的计划:

def gamePlansForPlayer = Player.get( id ).plans.findAll { plan ->
plan.instanceOf( GamePlan )
}

虽然没有测试过:-(

关于hibernate - 带有抽象类的一对多Grails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11263044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com