Inheritance Lift映射程序或记录框架中的继承

Inheritance Lift映射程序或记录框架中的继承,inheritance,scala,polymorphism,lift,Inheritance,Scala,Polymorphism,Lift,是否有一种方法可以使用Mapper o Record Framework在Lift中定义适当的继承模型,其中父类有一个表,每个子类有一个表?假设您希望使用继承来在每个子类中使用相同的映射字段,我已经通过为这些字段使用特征来实现这一点: trait SuperFields[T <: Mapper[T]] { self: T => object DESCRIPTION extends MappedString[T](this, 255) object BRAND extend

是否有一种方法可以使用Mapper o Record Framework在Lift中定义适当的继承模型,其中父类有一个表,每个子类有一个表?

假设您希望使用继承来在每个子类中使用相同的映射字段,我已经通过为这些字段使用特征来实现这一点:

trait SuperFields[T <: Mapper[T]] {
  self: T =>
  object DESCRIPTION extends MappedString[T](this, 255)
  object BRAND extends MappedString[T](this, 50)
  // etc
}
以及:

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
}
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
}