Illegal errore di compilazione eredità utilizzando Scala 2.7.7 e 1.1 LIFT-SNAPSHOT
Domanda
Sto usando JDK 1.6.0_16, e Scala 2.7.7, compilazione con Maven.
Lo faccio mvn clean compile
e ottengo quattro errori, ma sono identici, in diversi modelli:
[ERRORE] C: \ Users \ proprietario \ workspace \ ResumeApp \ src \ Main \ Scala \ jblack \ resumeapp \ sollevare \ modello \ ContactInfoModel.scala: 13: errore: eredità illegale;
[INFO] auto-tipo jblack.resumeapp.lift.model.ContactInfoModel non è conforme alla net.liftweb.mapper.CRUDify [Lungo, jblack.resumeapp.lift.model.ContactInfoModel] 'S selftype net.liftweb.mapper.CRUDify [Lungo, jblack.resumeapp.lift.model.ContactI nfoModel] con jblack.resumeapp.lift.model.ContactInfoModel con net.liftweb.map per.KeyedMetaMapper [Lungo, jblack.resumeapp.lift.model.ContactInfoModel]
[INFO] con CRUDify [Lungo, ContactInfoModel] {
E questo è il mio codice:
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)
}
Io non sono certo quello che sto facendo male.
Purtroppo, perché ho installato il plugin di notte, in Eclipse, non posso installare IDE 2.7.7, quindi posso solo compilare questo con Maven.
C'è un problema con il modo sto usando CRUDify
?
Soluzione
CRUDify in esigenze di sollevamento-1.1 da miscelare nell'oggetto MetaMapper posto della classe Mapper. Così dovrebbe funzionare con questo codice invece:
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)
}
Altri suggerimenti
Finalmente ho potuto farlo funzionare correttamente quando sono tornato ad usare LIFT 1.0 invece di 1.1. Sembra che ci sia qualche cambiamento che ho bisogno di guardare alla fine in per 1.1, ma almeno posso continuare con il mio sviluppo.