Skip to content

Instantly share code, notes, and snippets.

@lshoo
Created March 26, 2012 13:48
Show Gist options
  • Save lshoo/2205144 to your computer and use it in GitHub Desktop.
Save lshoo/2205144 to your computer and use it in GitHub Desktop.
lift-mongo-record出错
package com.lshoo.model
import net.liftweb._
import record.field._
import mongodb.record.{MongoRecord, MongoMetaRecord, MongoId}
import mongodb.{JsonObject, JsonObjectMeta}
import mongodb.record.field._
object BookMongo extends BookMongo with MongoMetaRecord[BookMongo]
class BookMongo private extends MongoRecord[BookMongo] with MongoId[BookMongo]{
def meta = BookMongo
object title extends StringField(this, "")
object publisherInYear extends IntField(this, 1990)
object publisher extends JsonObjectField[BookMongo, PublisherMongo](this, PublisherMongo) {
def defaultValue = PublisherMongo("", "")
}
object authors extends MongoJsonObjectListField[BookMongo, AuthorMongo](this, AuthorMongo)
}
case class PublisherMongo(name: String, description: String)
extends JsonObject[PublisherMongo] {
def meta = PublisherMongo
}
object PublisherMongo extends JsonObjectMeta[PublisherMongo]
case class AuthorMongo (firstName: String,
lastName: String) extends JsonObject[AuthorMongo] {
def meta = AuthorMongo
}
object AuthorMongo extends JsonObjectMeta[AuthorMongo]
scala> BookMongo.createRecord.title("sample").authors(AuthorMongo(List(AuthorMon
go("tim", "perrett")))).publisher(PublisherMongo("Manning","")).save
执行时出错:
<console>:11: error: not enough arguments for method apply: (firstName: String,
lastName: String)com.lshoo.model.AuthorMongo in object AuthorMongo.
Unspecified value parameter lastName.
BookMongo.createRecord.title("sample").authors(AuthorMongo(List(AuthorMongo("tim", "perrett")))).publisher(PublisherMongo("Manning","")).save
^
是何原因?
@lshoo
Copy link
Author

lshoo commented Mar 26, 2012

经验证,修改后应该是:

scala> BookMongo.createRecord.title("sample").authors(List(AuthorMongo("tim", "p
errett"))).publisher(PublisherMongo("Manning","")).save
JRebel: Reloading class 'com.lshoo.model.BookMongo$'.
JRebel: Reloading class 'com.lshoo.model.BookMongo'.
JRebel: Reloading class 'com.lshoo.model.BookMongo$authors$'.
JRebel: Reloading class 'com.lshoo.model.AuthorMongo$'.
JRebel: Reloading class 'com.lshoo.model.AuthorMongo'.
JRebel: Reloading class 'com.lshoo.model.BookMongo$publisher$'.
JRebel: Reloading class 'com.lshoo.model.PublisherMongo$'.
JRebel: Reloading class 'com.lshoo.model.PublisherMongo'.
JRebel: Reloading class 'com.lshoo.model.BookMongo$title$'.
JRebel: Reloading class 'com.lshoo.model.BookMongo$publisherInYear$'.
res14: com.lshoo.model.BookMongo = class com.lshoo.model.BookMongo={_id=4f7078c2
694679051cc69146, authors=List(AuthorMongo(tim,perrett)), publisher=PublisherMon
go(Manning,), title=sample, publisherInYear=1990}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment