Scala 2.7.7을 사용한 불법 상속 컴파일 오류 및 1.1-SNAPSHOT 리프트 오류
문제
JDK 1.6.0_16과 Scala 2.7.7을 Maven과 컴파일하고 있습니다.
그래요 mvn clean compile
그리고 네 가지 오류가 발생하지만 다른 모델에서 동일합니다.
ERROR] C : USERS 소유자 WORKSPACE RESUMEAPP SRC MAIN SCALA JBLACK RESUMEAPP LIFT MODEL CANTERTIONFOMODEL.SCALA : 13 : 오류 : 불법 상속;
info] selftype jblack.resumeapp.lift.model.contactinfomodel은 net.liftweb.mapper.crudify [long, jblack.resumeapp.lift.model.contactinfomodel]의 selftype net.liftweb.mapper.crudify long, jblack.resumeapp.lift.model.contacti nfomodel] jblack.resumeapp.lift.model.model.contactinfomodel with net.liftweb.map per.keyedmetamapper [long, 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에 설치 했으므로 IDE 2.7.7을 설치할 수 없으므로 Maven으로 만 컴파일 할 수 있습니다.
내가 사용하는 방법에 문제가 있습니까? CRUDify
?
해결책
Lift-1.1의 Crudify는 Mapper 클래스 대신 Metamapper 객체에 혼합되어야합니다. 대신이 코드에서 작동해야합니다.
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.1 대신 Lift 1.0을 사용하여 돌아 왔을 때 마침내 제대로 작동했습니다. 결국 1.1을 찾아야 할 약간의 변화가있는 것으로 보이지만 적어도 내 발전을 계속할 수 있습니다.