Ошибка компиляции с незаконным наследованием с использованием Scala 2.7.7 и LIFT 1.1-МОМЕНТАЛЬНЫЙ СНИМОК
Вопрос
Я использую JDK 1.6.0_16 и Scala 2.7.7, компилирующиеся с помощью maven.
Я знаю mvn clean compile
и я получаю четыре ошибки, но они идентичны в разных моделях:
[ОШИБКА] C:\Users\owner\workspace esumeApp\src\main\scala\jblack esumeapp\lift\ модель\ContactInfoModel.scala:13:ошибка:незаконное наследование;
[ИНФОРМАЦИЯ] самостоятельный ввод jblack.resumeapp.lift.model.ContactInfoModel не соответствует net.liftweb.mapper.CRUDify[Длинный,jblack.resumeapp.lift.model.ContactInfoModel] тип пользователя net.liftweb.mapper.Обработайте [Длинный, jblack.resumeapp.lift.model.Свяжитесь с nfoModel] с помощью jblack.resumeapp.lift.model.ContactInfoModel с помощью net.liftweb.map согласно.Метамодель с ключом [Длинный, jblack.resumeapp.lift.model.ContactInfoModel]
[ИНФОРМАЦИЯ] с помощью CRUDify[Длинный, 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)
}
Я не уверен, что я делаю не так.
К сожалению, из-за того, что я установил плагин nightly в Eclipse, я не могу установить IDE 2.7.7, поэтому я могу скомпилировать это только с помощью maven.
Есть ли проблема с тем, как я использую CRUDify
?
Решение
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)
}
Другие советы
Наконец-то я заставил его работать должным образом, когда вернулся к использованию LIFT 1.0 вместо 1.1.Похоже, что есть некоторые изменения, которые мне нужно в конечном итоге рассмотреть для версии 1.1, но, по крайней мере, я могу продолжить свою разработку.