2009-12-02 4 views
2

Я использую JDK 1.6.0_16 и Scala 2.7.7, компилируя с maven.Ошибка компиляции нелегального наследования с использованием Scala 2.7.7 и LIFT 1.1-SNAPSHOT

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

[ERROR] C:\Users\owner\workspace\ResumeApp\src\main\scala\jblack\resumeapp\lift\ model\ContactInfoModel.scala:13: error: illegal inheritance;

[INFO] self-type jblack.resumeapp.lift.model.ContactInfoModel does not conform to net.liftweb.mapper.CRUDify[Long,jblack.resumeapp.lift.model.ContactInfoModel] 's selftype net.liftweb.mapper.CRUDify[Long,jblack.resumeapp.lift.model.ContactI nfoModel] with jblack.resumeapp.lift.model.ContactInfoModel with net.liftweb.map per.KeyedMetaMapper[Long,jblack.resumeapp.lift.model.ContactInfoModel]

[INFO] with 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

CRUDify в лифте-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

Спасибо. С тех пор я начал переходить к использованию JPA, поэтому я посмотрю, какие у меня проблемы. :) И используя LIFT 1.1. –

0

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