使用Scala 2.7.7和LIFT 1.1-SNAPSHOT进行非法继承编译错误

时间:2009-12-02 03:26:09

标签: lift scala-2.7

我正在使用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 [长,jblack.resumeapp.lift.model.ContactInfoModel]   的自我类型   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 [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中安装了nightly插件,所以我无法安装IDE 2.7.7,所以我只能用maven编译它。

我使用CRUDify的方式有问题吗?

2 个答案:

答案 0 :(得分:2)

在lift-1.1中的CRUDify需要混合到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)
}

答案 1 :(得分:0)

当我回到使用LIFT 1.0而不是1.1时,我终于让它正常工作了。似乎有一些变化需要我最终考虑1.1,但至少我可以继续我的发展。