erreur de compilation de succession illégale en utilisant Scala 2.7.7 et 1.1 LIFT-SNAPSHOT
Question
J'utilise 1.6.0_16 JDK, et Scala 2.7.7, compilation avec Maven.
Je fais mvn clean compile
et je reçois quatre erreurs, mais ils sont identiques, en différents modèles:
[ERREUR] C: \ Users \ propriétaire \ workspace \ ResumeApp \ src \ main \ scala \ jblack \ resumeapp \ lever \ modèle \ ContactInfoModel.scala: 13: Erreur: héritage illégal;
auto type [INFO] jblack.resumeapp.lift.model.ContactInfoModel ne sont pas conformes à net.liftweb.mapper.CRUDify [Long, jblack.resumeapp.lift.model.ContactInfoModel] « S selftype net.liftweb.mapper.CRUDify [Long, jblack.resumeapp.lift.model.ContactI nfoModel] avec jblack.resumeapp.lift.model.ContactInfoModel avec net.liftweb.map per.KeyedMetaMapper [Long, jblack.resumeapp.lift.model.ContactInfoModel]
[INFO] avec CRUDify [Long, ContactInfoModel] {
Et voici mon 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)
}
Je ne suis pas certain de ce que je fais mal.
Malheureusement, parce que j'installé le plugin de nuit, dans Eclipse, je ne peux pas installer IDE 2.7.7, donc je ne peux compiler cela avec Maven.
Y at-il un problème avec la façon dont je me sers CRUDify
?
La solution
CRUDify des besoins de plate-forme élévatrice 1.1 à mélanger dans l'objet MetaMapper au lieu de la classe Mapper. Donc, il devrait fonctionner avec ce code à la place:
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)
}
Autres conseils
Je l'ai finalement obtenu fonctionne correctement quand je suis retourné à l'aide LIFT 1.0 au lieu de 1.1. Il semble qu'il y ait un changement que je dois chercher éventuellement en 1,1, mais au moins je peux poursuivre mon développement.