사용자 도구

사이트 도구


java:jackson

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
java:jackson [2018/12/27 12:50]
kwon37xi
java:jackson [2019/01/11 17:52]
kwon37xi [Hibernate]
줄 55: 줄 55:
   * [[https://fasterxml.github.io/jackson-annotations/javadoc/2.6/com/fasterxml/jackson/annotation/JsonIdentityInfo.html|@JsonIdentityInfo]] 동일 ID에 대해 중복 출력 방지   * [[https://fasterxml.github.io/jackson-annotations/javadoc/2.6/com/fasterxml/jackson/annotation/JsonIdentityInfo.html|@JsonIdentityInfo]] 동일 ID에 대해 중복 출력 방지
   * [[https://github.com/FasterXML/jackson-datatype-hibernate|Jackson Datatype Hibernate]] Hibernate Lazy loading 필드를 Jackson 직렬화 대상에서 제외   * [[https://github.com/FasterXML/jackson-datatype-hibernate|Jackson Datatype Hibernate]] Hibernate Lazy loading 필드를 Jackson 직렬화 대상에서 제외
 +
 ===== Pretty Print ===== ===== Pretty Print =====
 <code java> <code java>
줄 71: 줄 72:
   * 성능 저하 요소가 될 수 있으므로 Java 8 이상에서는 가급적이면 ''LocalDateTime'' 등을 사용하는게 좋겠다.   * 성능 저하 요소가 될 수 있으므로 Java 8 이상에서는 가급적이면 ''LocalDateTime'' 등을 사용하는게 좋겠다.
  
 +===== Hibernate =====
 +  * [[java:hibernate|Hibernate]] 사용시 LazyLoading 문제 해소 모듈
 +  * [[https://github.com/FasterXML/jackson-datatype-hibernate|jackson-datatype-hibernate]]
 +  * 양방향 관계에 대해 [[https://www.baeldung.com/jackson-bidirectional-relationships-and-infinite-recursion|Jackson - Bidirectional Relationships]] 참조<code java>
 +public class User {
 +    public int id;
 +    public String name;
 + 
 +    @JsonBackReference
 +    public List<Item> userItems;
 +}
 +
 +public class Item {
 +    public int id;
 +    public String itemName;
 + 
 +    @JsonManagedReference
 +    public User owner;
 +}
 +----
 +{
 + "id":2,
 + "itemName":"book",
 + "owner":
 +    {
 +        "id":1,
 +        "name":"John"
 +    }
 +}
 +</code>
 ===== 참고 ===== ===== 참고 =====
   * [[http://www.baeldung.com/jackson-serialize-dates|Jackson Date]]<code java>   * [[http://www.baeldung.com/jackson-serialize-dates|Jackson Date]]<code java>
java/jackson.txt · 마지막으로 수정됨: 2023/10/04 14:47 저자 kwon37xi