我使用 Jackson 作为映射器在 Scala 中定义了以下类。
package models
import play.api.Play.current
import org.codehaus.jackson.annotate.JsonProperty
import net.vz.mongodb.jackson.ObjectId
import play.modules.mongodb.jackson.MongoDB
import reflect.BeanProperty
import scala.collection.JavaConversions._
import net.vz.mongodb.jackson.Id
import org.codehaus.jackson.annotate.JsonIgnoreProperties
case class Team(
@BeanProperty @JsonProperty("teamName") var teamName: String,
@BeanProperty @JsonProperty("logo") var logo: String,
@BeanProperty @JsonProperty("location") var location: String,
@BeanProperty @JsonProperty("details") var details: String,
@BeanProperty @JsonProperty("formOfSport") var formOfSport: String)
object Team {
private lazy val db = MongoDB.collection("teams", classOf[Team], classOf[String])
def save(team: Team) { db.save(team) }
def getAll(): Iterable[Team] = {
val teams: Iterable[Team] = db.find()
return teams
}
def findOneByTeamName(teamName: String): Team = {
val team: Team = db.find().is("teamName", teamName).first
return team
}
}
插入 mongodb 没有问题,并且_id
会自动为每个文档插入一个。
但现在我想尝试读取(或反序列化)文档,例如通过调用findOneByTeamName
. 这总是会导致我使用andUnrecognizedPropertyException for _id.
创建实例。即使有自己的 ObjectId,这也不起作用,并且被区别对待。Team.apply
Team.unapply
_id
id
任何人都可以帮助如何获取实例或如何反序列化吗?提前致谢