首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >播放2.3 Jongo ObjectId到自定义ID

播放2.3 Jongo ObjectId到自定义ID
EN

Stack Overflow用户
提问于 2015-10-05 16:41:49
回答 1查看 189关注 0票数 0

我在Play -jongo中使用了play 2.3 scala:

"uk.co.panaxiom" %% "play-jongo" % "0.7.1-jongo1.0"

我有scala案例类:

代码语言:javascript
复制
import org.jongo.marshall.jackson.oid.Id
case class User(@Id id: String, name: String)

当我使用Jongo PlayJongo.getCollection("users").save(User("uuid","user name"))保存一些用户时

我的数据库中有以下内容:

代码语言:javascript
复制
{ 
    "_id" : { "$oid" : "5612a4effa93746a877c0d5c"} , 
    "id" : "uuid", 
    "name": "user name"
}

当需要时,结果将是字符串值_id,它映射到scala类中的id属性:

代码语言:javascript
复制
{ 
    "_id" : "uuid", 
    "name": "user name"
}

当我将scala案例类转换为Java (下面的简单示例)时,一切正常。在这种情况下,我得到了所需的结果。

代码语言:javascript
复制
public class User {
    @Id
    public String id;
    public String name;
}

我做错了什么?如何使jackson/jongo正确理解@Id注释?

其他答案中,有人建议使用@Id注释--我使用了--但没有成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-06 09:12:32

所以RTFM规则毕竟是有回报的。在play-jongo自述中指出,将Jackson Module Scala依赖项添加到项目并配置映射器就足够了。

build.sbt添加依赖项

代码语言:javascript
复制
"com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.6.1",

application.conf中配置映射器

代码语言:javascript
复制
playjongo.mapperfactory="uk.co.panaxiom.playjongo.JongoScalaMapperFactory"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32953624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档