代码之家  ›  专栏  ›  技术社区  ›  James Black

使用Scala 2.7.7和LIFT 1.1-SNAPSHOT时出现非法继承编译错误

  •  2
  • James Black  · 技术社区  · 16 年前

    我使用JDK1.6.0_16和Scala 2.7.7,使用maven进行编译。

    我愿意 mvn clean compile 我得到了四个错误,但它们是相同的,在不同的模型中:

    [错误] C:\Users\owner\workspace\ResumeApp\src\main\scala\jblack\ResumeApp\lift\ model\ContactInfoModel.scala:13: 错误:非法继承;

    不符合 net.liftweb.mapper.CRUDify[Long,jblack.resumeapp.lift.model.ContactI jblack.resumeapp.lift.model.ContactInfoModel 使用net.liftweb.map

    [信息]与CRUDify[Long,

    这是我的代码:

    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插件,所以我无法安装IDE2.7.7,所以我只能用maven编译它。

    CRUDify ?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Aaron    16 年前

    lift-1.1中的CRUDify需要混合到元映射器对象中,而不是映射器类中。因此,它应该使用以下代码:

    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)
    }
    
        2
  •  0
  •   James Black    16 年前

    当我重新使用lift1.0而不是1.1时,我终于让它正常工作了。看来我最终需要对1.1进行一些修改,但至少我可以继续我的开发。

    推荐文章