带有@key的Scala Salat反序列化错误
Scala Salat deserialization error with @key
我有一个案例 class 看起来像这样:
import com.novus.salat.annotations.raw.Key
import org.bson.types.ObjectId
case class Users(
_id: ObjectId,
email: String,
password: String,
firstName: String,
lastName: String,
company: Option[String],
position: Option[String],
enabled: Boolean)
还有一个简单的 SalatDAO:
import com.novus.salat.dao.SalatDAO
import org.bson.types.ObjectId
import com.novus.salat.global._
object UsersDAO extends SalatDAO[Users, ObjectId](
collection = MongoFactory.getCollection("usersCollection"))
所以现在我想将“_id”更改为"id"。我认为 Salat @Key 注释确实是为了这个目的。所以我写:
...
@Key("_id") id: ObjectId,
...
当我尝试 UsersDAO.find(MongoDBObject.empty)
时出现异常
java.lang.NoSuchMethodException: com...Users$.apply$default()
有趣的是 - 如果我做同样的事情,但对另一个 class "id: String" 我得到这个异常
java.lang.Exception: class com...AnotherClass requires value for 'id'
谁能给那个洒点阳光吗?
您需要修复导入问题。使用
import com.novus.salat.annotations._
将 @Key
注释正确定位到 getter
。
我有一个案例 class 看起来像这样:
import com.novus.salat.annotations.raw.Key
import org.bson.types.ObjectId
case class Users(
_id: ObjectId,
email: String,
password: String,
firstName: String,
lastName: String,
company: Option[String],
position: Option[String],
enabled: Boolean)
还有一个简单的 SalatDAO:
import com.novus.salat.dao.SalatDAO
import org.bson.types.ObjectId
import com.novus.salat.global._
object UsersDAO extends SalatDAO[Users, ObjectId](
collection = MongoFactory.getCollection("usersCollection"))
所以现在我想将“_id”更改为"id"。我认为 Salat @Key 注释确实是为了这个目的。所以我写:
...
@Key("_id") id: ObjectId,
...
当我尝试 UsersDAO.find(MongoDBObject.empty)
时出现异常
java.lang.NoSuchMethodException: com...Users$.apply$default()
有趣的是 - 如果我做同样的事情,但对另一个 class "id: String" 我得到这个异常
java.lang.Exception: class com...AnotherClass requires value for 'id'
谁能给那个洒点阳光吗?
您需要修复导入问题。使用
import com.novus.salat.annotations._
将 @Key
注释正确定位到 getter
。