error de compilación herencia ilegal utilizando Scala 2.7.7 y 1.1 LIFT-INSTANTÁNEA
Pregunta
Estoy utilizando JDK 1.6.0_16 y Scala 2.7.7, compilar con experto.
mvn clean compile
hago y consigo cuatro errores, pero son idénticos, en diferentes modelos:
[ERROR] C: \ Users \ propietario \ espacio de trabajo \ ResumeApp \ src \ Main \ Scala \ jblack \ resumeapp \ levantar \ modelo \ ContactInfoModel.scala: 13: error: herencia ilegal;
[INFO] auto-tipo jblack.resumeapp.lift.model.ContactInfoModel no se ajusta a net.liftweb.mapper.CRUDify [Larga, jblack.resumeapp.lift.model.ContactInfoModel] 'S selftype net.liftweb.mapper.CRUDify [Larga, jblack.resumeapp.lift.model.ContactI nfoModel] con jblack.resumeapp.lift.model.ContactInfoModel con net.liftweb.map per.KeyedMetaMapper [Larga, jblack.resumeapp.lift.model.ContactInfoModel]
[INFO] con CRUDify [Larga, ContactInfoModel] {
Y este es mi código:
package jblack.resumeapp.lift.model
import net.liftweb.mapper._
object ContactInfoMetaData
extends ContactInfoModel
with KeyedMetaMapper[Long, ContactInfoModel] {
override def dbTableName = "contactinfo"
override def fieldOrder = List(key, data, display)
}
class ContactInfoModel
extends KeyedMapper[Long, ContactInfoModel]
with CRUDify[Long, ContactInfoModel] {
def getSingleton = ContactInfoMetaData
def primaryKeyField = id
object id extends MappedLongIndex(this)
object key extends MappedString(this, 100)
object data extends MappedString(this, 100)
object display extends MappedBoolean(this)
}
No estoy seguro de lo que estoy haciendo mal.
Por desgracia, debido a que he instalado el plugin noche, en Eclipse, no puedo instalar el IDE 2.7.7, así que sólo puedo compilar este con el experto.
¿Hay un problema con la forma en que estoy usando CRUDify
?
Solución
CRUDify en las necesidades de elevación-1.1 a ser mezclado en el objeto MetaMapper lugar de la clase Mapper. Por lo que debe trabajar con este código en su lugar:
package jblack.resumeapp.lift.model
import net.liftweb.mapper._
object ContactInfoMetaData
extends ContactInfoModel
with KeyedMetaMapper[Long, ContactInfoModel]
with CRUDify[Long, ContactInfoModel] {
override def dbTableName = "contactinfo"
override def fieldOrder = List(key, data, display)
}
class ContactInfoModel
extends KeyedMapper[Long, ContactInfoModel] {
def getSingleton = ContactInfoMetaData
def primaryKeyField = id
object id extends MappedLongIndex(this)
object key extends MappedString(this, 100)
object data extends MappedString(this, 100)
object display extends MappedBoolean(this)
}
Otros consejos
Finalmente llegué funcionando correctamente cuando fui de nuevo a usar LIFT 1.0 en lugar de 1.1. Parece que hay algún cambio que tengo que mirar, finalmente, en el 1,1, pero al menos puede continuar con mi desarrollo.