我在Play -jongo中使用了play 2.3 scala:
"uk.co.panaxiom" %% "play-jongo" % "0.7.1-jongo1.0"
我有scala案例类:
import org.jongo.marshall.jackson.oid.Id
case class User(@Id id: String, name: String)当我使用Jongo PlayJongo.getCollection("users").save(User("uuid","user name"))保存一些用户时
我的数据库中有以下内容:
{
"_id" : { "$oid" : "5612a4effa93746a877c0d5c"} ,
"id" : "uuid",
"name": "user name"
}当需要时,结果将是字符串值_id,它映射到scala类中的id属性:
{
"_id" : "uuid",
"name": "user name"
}当我将scala案例类转换为Java (下面的简单示例)时,一切正常。在这种情况下,我得到了所需的结果。
public class User {
@Id
public String id;
public String name;
}我做错了什么?如何使jackson/jongo正确理解@Id注释?
在其他答案中,有人建议使用@Id注释--我使用了--但没有成功。
发布于 2015-10-06 09:12:32
所以RTFM规则毕竟是有回报的。在play-jongo自述中指出,将Jackson Module Scala依赖项添加到项目并配置映射器就足够了。
向build.sbt添加依赖项
"com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.6.1",在application.conf中配置映射器
playjongo.mapperfactory="uk.co.panaxiom.playjongo.JongoScalaMapperFactory"https://stackoverflow.com/questions/32953624
复制相似问题