erreur de compilation de succession illégale en utilisant Scala 2.7.7 et 1.1 LIFT-SNAPSHOT

StackOverflow https://stackoverflow.com/questions/1830478

  •  11-09-2019
  •  | 
  •  

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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top