Alan sınıflarımı Grails'e aşağıda gösterildiği gibi miras olarak modelledim. Daha sonra ben profillerin bazı takım veya Kullanıcı yayın yapmak istediğim bazı durumlarda sınıf B tüm profilleri elde kontrolörleri içinde Grails/Groovy etki alanı sınıfları kalıtım döküm
abstract class Profile{
}
class Team extends Profile{
}
class User extends Profile{
}
class B{
static hasMany = [profiles: Profile]
}
, ama ben bir java alamıyorum çünkü. lang.ClassCastException veya GroovyCastException, bir Ekip veya Kullanıcı olarak (veritabanında öznitelik sınıfıyla birlikte) kaydedilirler. İşte ben denedim yolu vardır: Bunun bir dinamik dilde normaldir olarak her tür sadece kullanmak yazmayın zaman
def team1 = b.profiles.toList()[0] as Team
def team1 = (Team)b.profiles.toList()[0]
çalışıyor.
def team1 = b.profiles.toList()[0]
Ama sonra hangi sınıfı kullandığımı bilmiyorum. Ebeveyn sınıfını çocuğa çevirmek için groovy ya da gorm var mı?
'arasında seçim yapmak Gorm'da için (http://grails.org/doc/latest/ref/Database%20Mapping/discriminator.html) hiçbir [diskriminatör] Orada Kullanıcı veya Takım. Hangi uygulamayı kullanacağına nasıl karar vermeli? – krock
Veritabanındaki aynı tabloya hangi sınıfı gösteren bir sınıf özniteliği ile kaydeder. – sgleser87