Scalaの2.7.7とLIFT 1.1-SNAPSHOTを使用して違法継承コンパイルエラー
質問
私はMavenのでコンパイル、JDK 1.6.0_16、およびScalaの2.7.7を使用しています。
私はmvn clean compile
を行うと、私は4つのエラーが出ますが、それらは異なるモデルでは、同じです。
[ERROR] C:\ Users \ユーザー所有者\ワークスペース\ ResumeApp \ SRC \メイン\のスカラ\ jblack \ resumeapp \持ち上げ\ モデル\ ContactInfoModel.scala:13: エラー:違法継承;
[INFO]自己タイプ jblack.resumeapp.lift.model.ContactInfoModel に準拠していません。 net.liftweb.mapper.CRUDify [ロング、jblack.resumeapp.lift.model.ContactInfoModel] さんselftype net.liftweb.mapper.CRUDify [ロング、jblack.resumeapp.lift.model.ContactI nfoModel]と jblack.resumeapp.lift.model.ContactInfoModel net.liftweb.mapと per.KeyedMetaMapper [ロング、jblack.resumeapp.lift.model.ContactInfoModel]
[INFO] 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)
}
私は私が間違っているのものを特定していない。
私は毎晩プラグインをインストールしているため残念ながら、Eclipseに、私はIDE 2.7.7をインストールすることはできませんので、私は唯一のmavenでこれをコンパイルすることができます。
私はCRUDify
を使用していますどのように問題はありませんか?
解決
CRUDify MetaMapperオブジェクトの代わりに、マッパークラスに混合するリフト1.1ニーズです。
:だから、代わりにこのコードで動作するはずです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のために調べる必要があり、いくつかの変更があることが表示されますが、少なくとも私は、私の開発を継続することができます。