Existe-t-il un moyen de définir correctement un modèle d'héritage dans Lift à l'aide de Mapper o Record Framework où il existe une table pour la classe parent et une table pour chaque fils?Héritage dans Lift Mapper ou Record Framework
5
A
Répondre
8
En supposant que vous voulez utiliser l'héritage pour pouvoir utiliser les mêmes champs mis en correspondance dans chacune des sous-classes, je l'ai approché cela en utilisant un trait pour les champs:
trait SuperFields[T <: Mapper[T]] {
self: T =>
object DESCRIPTION extends MappedString[T](this, 255)
object BRAND extends MappedString[T](this, 50)
// etc
}
Ensuite, chaque Mapper/MetaMapper prolongera superchamps, mais définir leur propre table de base de données et identifiants: connexion
class Product extends Mapper[Product] with SuperFields[Product] {
override def getSingleton = Product
}
object Product extends Product with MetaMapper[Product] {
override def dbTableName = "PRODUCT"
override def dbDefaultConnectionIdentifier = SomeConnection
}
et:
class Service extends Mapper[Service] with SuperFields[Service] {
override def getSingleton = Service
}
object Service extends Service with MetaMapper[Service] {
override def dbTableName = "SERVICE"
override def dbDefaultConnectionIdentifier = SomeOtherConnection
}