2017-04-18 5 views
0

을 만드는 이유 :Salat는 두 개의 ID 필드 해봤 무엇

나는 주위에 일 반 일했는데, 아직 해결되지.

MyEntity와 비슷한 MyEntityTemp 엔티티를 작성하고 변환기를 작성했습니다. 심지어 두 개의 ID 필드가 나타납니다. 해결하려면 도움이 필요하십시오.

MyEntity 상속 된 클래스 중 일부는 id 필드가 있으므로 동일한 상속 클래스를 제거해도 동일한 문제가 발생합니다.

case class MYEntity (
    @Key("_id") id: String =ObjectId(), 
// id: String, // I tried like this also, even I am getting two ids 
    regionId: String, 
    zoneId: String) 

object ObjectId { 
    def apply(): String = new org.bson.types.ObjectId().toString 
} 

사용 : 스칼라 2.10.5을 Salat 1.9.9 json4s 네이티브 3.3.0

오류 :

것은 같은 얻을 필요 this :

{ 
    "_id" : "5411b214ebb290b62281c845", 
} 

하지만이 같은 무엇입니까 왜 당신이 좀 도와 주 시겠어요

{ 
    "_id" : ObjectId("58f5eabb0c7443adcca88e57"), 
    "id" : "5411b214ebb290b62281c845", 
} 

를 받고.

+0

"getting"이라고 말하면 Mongo 레코드 또는 생성 된 JSON을 의미합니다. 당신의 코드에'Object ObjectId'가 있습니까? 거기에 당신의 동기는 무엇입니까? – noahlz

+0

JSON에 없습니다. mongoDB에서보고 있습니다. –

답변

0

나는 이틀 동안 그 일을하고 같은 방법으로 여러 가지 방법으로 시도했다. 마침내 나는 Salat 대신에 Casbah mongo api를 사용하려고했습니다.

나는 MongoDBObject를 만들었고 id 필드 이름을 _id로 바꾸고 mongoDB에 저장했습니다. 이제 내가 예상했던 일이 일어난다.

+0

코드를 보여줄 수 있습니까? – noahlz

+0

이 질문과 대답에 대해 궁금 할 것입니다. 당신의 케이스 클래스가 그런 필드를 가지고 있지 않더라도, Mongo가 "ObjectId"타입의 _id라는 이름의 ID 필드를 할당한다는 것을 이해 했습니까? – noahlz