당신은 Jackson's JSON Filter Feature 사용할 수 있습니다
@Entity
@JsonFilter("Book")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column
private String title;
@OneToMany(fetch = FetchType.LAZY, mappedBy = ("movie"),cascade = CascadeType.ALL)
private List<Genre> genre;
}
@Entity
@JsonFilter("Genre")
public class Genre {
...
}
을 다음 컨트롤러에서 필터링을 지정 :
이런 식으로
@Controller
public class BookController {
@Autowired
private ObjectMapper objectMapper;
@Autowird
private BookRepository bookRepository;
@RequestMapping(value = "/book", method = RequestMethod.GET, produces = "application/json")
@ResponseBody
public ResponseEntity<String> getBooks() {
final List<Book> books = booksRepository.findAll();
final SimpleFilterProvider filter = new SimpleFilterProvider();
filter.addFilter("Book", SimpleFilterProvider.serializeAllExcept("Genre");
return new ResponseEntity<>(objectMapper.writer(filter).writeValueAsString(books), HttpStatus.OK)
}
}
, 당신이 제어 할 수 있습니다 당신은 런타임에 게으른 관계를 필터링 할 때
[과도] [1] [1] : http://stackoverflow.com/ 질문/20700530/why-use-transient-keyword-in-java 이 주제를 사용하여 anserw를 얻으십시오.) – Fincio
안녕하세요 @Fincio, 장르가 일시적으로 변할 수 없습니다. 데이터 베이스. – lorraine
흠, @JsonIgnoreProperties ({ "genre"}) 또는 @JsonIgnore는 어떨까요? – Fincio