Illegale Vererbungs Kompilierungsfehler mit Scala 2.7.7 und LIFT 1.1-SNAPSHOT
Frage
Ich bin mit JDK 1.6.0_16 und Scala 2.7.7, mit Maven zu kompilieren.
ich mvn clean compile
und ich vier Fehler, aber sie identisch sind, in verschiedenen Modellen:
[ERROR] C: \ Benutzer \ Besitzer \ Arbeitsplatz \ ResumeApp \ src \ main \ scala \ jblack \ resumeapp \ heben \ Modell \ ContactInfoModel.scala: 13: Fehler: Unzulässige Vererbung;
[INFO] Selbst Typ jblack.resumeapp.lift.model.ContactInfoModel entspricht nicht net.liftweb.mapper.CRUDify [Lang, jblack.resumeapp.lift.model.ContactInfoModel] ‚S selftype net.liftweb.mapper.CRUDify [Lang, jblack.resumeapp.lift.model.ContactI nfoModel] mit jblack.resumeapp.lift.model.ContactInfoModel mit net.liftweb.map per.KeyedMetaMapper [Lang, jblack.resumeapp.lift.model.ContactInfoModel]
[INFO] mit CRUDify [Lang, ContactInfoModel] {
Und das ist mein Code:
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)
}
Ich bin nicht sicher, was ich falsch mache.
Leider, weil ich die nächtliche Plugin in Eclipse installiert ist, kann ich nicht IDE 2.7.7 installieren, so kann ich dies nur mit Maven kompilieren.
Gibt es ein Problem mit, wie ich CRUDify
verwende?
Lösung
CRUDify in Lift-1.1 Anforderungen in das MetaMapper Objekt gemischt wird anstelle der Mapper-Klasse. So sollte es stattdessen mit diesem Code arbeiten:
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)
}
Andere Tipps
Ich habe es endlich richtig arbeiten, wenn ich mit LIFT 1.0 ging zurück statt 1.1. Es scheint, dass es eine Veränderung ist, dass ich schließlich in 1,1 aussehen müssen, aber zumindest kann ich mit meiner Entwicklung fortsetzen.