2017-05-08 1 views
1

나는 ParentChild의 두 클래스를 가지고 있습니다.잭슨이 학부모의 모든 입력란을 무시합니다.

부모

public abstract class Parent implements Serializable{ 
    protected String id; 
    protected String deletedAt; 
    public String getId() { 
     return id; 
    } 
    public void setId(String id) { 
     this.id = id; 
    } 
    public String getDeletedAt() { 
     return deletedAt; 
    } 
    public void setDeletedAt(String deletedAt) { 
     this.deletedAt = deletedAt; 
    } 
} 

아이
public class Child extends Parent{ 
    private String name; 
    public String getName(){ 
    ... 
} 

내가 아이를로드하고 다음과 같이 이동하려고

:

Child c = getChildFromDb(); 
c.getId(); 

을이 내 잭슨의 설정입니다 :

JacksonConfig

import com.fasterxml.jackson.databind.ObjectMapper; 
import com.fasterxml.jackson.databind.SerializationFeature; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.context.annotation.Primary; 
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; 

@Configuration 
public class JacksonConfig { 

    @Bean 
    @Primary 
    public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) { 
     ObjectMapper objectMapper = builder.createXmlMapper(false).build(); 
     objectMapper.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, false); 
     return objectMapper; 
    } 
} 

ID는 null이지만 이름은 있습니다. 내가 뭘 잘못하고있어?

+0

입력 내용은 무엇입니까? – reos

+0

@reos 어떤 자식이나 모든 자식을 찾습니다. –

+0

파싱중인 json/xml은 무엇입니까? – reos

답변

0

DB 드라이버가 'rethink'에 문제가있는 것으로 밝혀졌습니다. DB 드라이버가 부모 클래스의 필드를 무시하고 DB에 저장된 적이 없기 때문에 결코 검색되지 않았습니다. 드라이버가있는 DB를 MongoDB로 변경하여 이제 완벽하게 작동합니다.

관련 문제