2017-11-02 20 views
-3

이것은 내가 java.lang.ClassCastException가납니다 오류입니다 : java.lang.Integer에 여기 내 POJO의 com.mongodb.DBObject모르핀 매퍼 예외

캐스트 할 수없는

@Entity("cars") 
@Getter 
@Setter 
public class Car { 
    @Id 
    private ObjectId id;  

    private String defaultChoice;  

    private Object input; 
} 

내가 몽고에서

{ 
    "defaultChoice": "sampleChoice", 
    "input": 432 
} 

로 JSON과 모르핀을 사용하여 몽고의 자동차 컬렉션이 저장 할 수 있었다, 필드 입력 형식으로 저장됩니다 INT32

,

모르 피아를 사용하여 데이터를 검색하려고하면 예외가 발생합니다. Object를 type으로 매핑/역 직렬화 할 수 없습니다. 나는 그것을 Integer input으로 바꾸어 보았습니다. 그리고 효과가있었습니다. 가능한 경우이 필드를 Object로 유지하려고합니다.

해결 방법이 있습니까? 맞춤 매퍼를 쓸 수 있습니까?

+1

왜 속성에 객체 클래스를 사용하고 있습니까? 그것은 432가 포함 된 정수로 정의되어야합니다. – notionquest

+0

왜 직접적인'Object'를 필드로 원합니까? 전문적인 것을 사용할 수 없습니까? – Lino

답변

0

MongoDB 모범 사례는 컬렉션의 동일한 필드에 동일한 필드 유형을 사용하는 것입니다. 그래서 Morphia는 이러한 접근 방식을 취하도록 고안되었습니다. 다른 사람들이 말했듯이이 필드에는 Integer를 사용해야하지만 다른 Java 클래스는 Morphia에 하위 문서로 포함시킬 수 있습니다.