Ошибка компиляции незаконного наследования с использованием Scala 2.7.7 и LIFT 1.1-SNAPSHOT - PullRequest
2 голосов
/ 02 декабря 2009

Я использую JDK 1.6.0_16 и Scala 2.7.7, компилирую с maven.

Я делаю mvn clean compile и получаю четыре ошибки, но они идентичны в разных моделях:

[ERROR] C: \ Users \ владелец \ рабочее пространство \ ResumeApp \ SRC \ главная \ Скала \ jblack \ resumeapp \ приподнять \ модель \ ContactInfoModel.scala: 13: ошибка: незаконное наследование;

[INFO] самотип jblack.resumeapp.lift.model.ContactInfoModel не соответствует net.liftweb.mapper.CRUDify [Long, jblack.resumeapp.lift.model.ContactInfoModel] самотип net.liftweb.mapper.CRUDify [Long, jblack.resumeapp.lift.model.ContactI nfoModel] с jblack.resumeapp.lift.model.ContactInfoModel с net.liftweb.map per.KeyedMetaMapper [Long, jblack.resumeapp.lift.model.ContactInfoModel]

[INFO] с CRUDify [Long, ContactInfoModel] {

А это мой код:

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)
}

Я не уверен, что я делаю неправильно.

К сожалению, поскольку я установил ночной плагин в Eclipse, я не могу установить IDE 2.7.7, поэтому могу скомпилировать его только с помощью maven.

Есть ли проблема с тем, как я использую CRUDify?

Ответы [ 2 ]

2 голосов
/ 11 декабря 2009

CRUDify в lift-1.1 необходимо смешать с объектом MetaMapper вместо класса Mapper. Поэтому он должен работать с этим кодом вместо:

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)
}
0 голосов
/ 04 декабря 2009

Я наконец-то все заработал, когда вернулся к использованию LIFT 1.0 вместо 1.1. Похоже, что есть какое-то изменение, которое мне нужно в конечном итоге изучить для версии 1.1, но, по крайней мере, я смогу продолжить разработку.

...