2013-08-19 4 views
0

이것은@jsonignore는 isMethod를 통해 setter를 사용합니까?

public class HouseJPAImpl implements House { 

public RoomJPAImpl room; 

public RoomJPAImpl getRoom(){ 
return this.room; 
} 

public void setRoom(RoomJPAImpl room){ 
this.room = room; 
} 

@Override 
public boolean isRoom(){ 
return false; 
} 
} 

내 코드가 getRoom과 isRoom과 혼동됩니다 내 클래스입니다. java.lang.IllegalArgumentException가 :

가에 의한 재산 "방"에 대한 게터 정의를 상충 : com.shared.model.restimpl.jpa.HouseJPAImpl # getRoom com.shared.model.restimpl.jpa 대 (0 PARAMS). HouseJPAImpl # isRoom (0 params)

@jsonignore를 isRoom 메소드에 넣으려고했지만 JSON에서 방 속성을 얻지 못했습니다.

isRoom을 통해 getRoom을 사용할 수 있습니까?

답변

2

우선, 이것은 Jackson 2.3이 정상적으로 처리하게됩니다 (https://github.com/FasterXML/jackson-databind/issues/238 참조).

  • isRoom()@JsonIgnore 추가 있지만, 모든 isXxx() 방법을 필터링 @JsonProperty
  • getRoom()에 변경 가시성 설정을 유지 : 출시 때까지

    그러나,이 처리하는 2 개 가지 방법이있다 할 수 있습니다 전역 설정 (ObjectMappersetVisibility과 같음)을 설정하거나 클래스에 대한 주석 @JsonAutoDetect을 사용하십시오.

이것은 분리 된 경우 첫 번째 구문을 사용하는 것이 좋습니다.

+0

대단히 감사합니다. 대단히 감사합니다. 그것은 매력처럼 작동했습니다. – allegjdm93