renderJson()을 통해 내 모델에서 동적 (일시적) 필드를 표시하려고하지만 작동하지 않습니다.재생! 프레임 워크 renderJson 특정 필드를 노출하지 않습니다
가@Entity
public class Room extends Model {
public String name;
public String code;
@Transient
public List<Booking> bookings;
@Transient
@Expose
public String resource_uri;
public Room(String name, String code) {
this.name = name;
this.code = code;
}
public List<Booking> getBookings() {
return Booking.find("byRoom", this).fetch();
}
public String getResource_uri(){
return "/api/room/" + this.id; //the uri is evaluated dynamically.
}
renderJson 호출이 (Room.findById (2))는 응답으로서이 렌더링 :
{"name":"Room B","code":"R-B","id":2}
resource_uri 필드가 누락 여기서 일례이다. @Expose 어노테이션은 아무 것도하지 않는 것 같습니다. 프레임 워크가 주석으로 모든 코드를 생성하므로 renderJson의 선언을 볼 수 없습니다.
임시 필드를 serialize 할 수있는 방법이 있습니까? resource_uri는 REST 인터페이스에 사용되는 메타 데이터 일 뿐이므로 실제로 데이터베이스에 저장하려는 것이 아닙니다. – sw00
더 자세히 살펴보면 Gson이 속성을 serialize 할 수 없음을 발견했습니다. 조금도. 분명히 필드를 찾기 위해 반사를 사용하기 때문입니다. 이 기능이있는 대체 방법은 무엇입니까? FlexJSON? – sw00
당신은 Gson으로 할 수 있습니다. 저는 제 대답에 사용자 정의 어댑터 예제를 게시했습니다. –