2015-10-05 64 views
0

我用播放2.3斯卡拉與播放jongo:播放2.3 Jongo的ObjectId定製ID

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

我有斯卡拉案例類:

import org.jongo.marshall.jackson.oid.Id 
case class User(@Id id: String, name: String) 

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

我在我的DB中有以下內容:

{ 
    "_id" : { "$oid" : "5612a4effa93746a877c0d5c"} , 
    "id" : "uuid", 
    "name": "user name" 
} 

當需要的結果將與字符串值_id映射到id屬性中階等級:

{ 
    "_id" : "uuid", 
    "name": "user name" 
} 

一切工作正常,當我把我的情況下階類的Java POJO(下面簡單的例子)。在這種情況下,我得到所需的結果。

public class User { 
    @Id 
    public String id; 
    public String name; 
} 

我在做什麼錯?我怎樣才能讓jackson/jongo明白@Id註解是否正確?

other SO answers有建議使用@Id註釋 - 我使用 - 沒有成功。

回答

0

因此,RTFM規則畢竟有回報。在play-jongo readme中表示,將Jackson Module Scala依賴項添加到項目並配置映射器就足夠了。

添加依賴性build.sbt

"com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.6.1", 

配置映射器在application.conf

playjongo.mapperfactory="uk.co.panaxiom.playjongo.JongoScalaMapperFactory"