Serialization

Serialization (직렬화)

Entity와 Serializable

When and why JPA entities should implement the Serializable interface?

  • 클래스는 직렬화 (Serialize) 돼야 한다면 Serializable을 implement 해야 한다.

  • JPA 명세에 따르면, detached object로, pass-by-value 방식으로 전달되어야 한다면, entity는 Serializable을 implement 해야 한다.

  • JPA 명세에 따르면, entity는 JVM에서 다른 JVM으로 전달되거나, Stateful Session Bean에 의해 사용된다면 Serializable을 implement 해야 한다.

  • Hibernate에서는 entity 대신 entity attribute가 serializable 해야한다고 한다. 하지만, JPA 명세를 적용한다면, Hibernate에서도 entity에 대한 JPA 명세가 적용되어야 할 것이다.

  • Tomcat 문서에 따르면, HttpSession attribute도 Serializable 해야 한다. 따라서, entity가 HttpSession에 보관되어야 한다면, Serializable을 implement 해야 한다.

  • DTO 안쓰고 Entity를 쓴다면, Serializable을 implement 해야 한다.

자바 직렬화는 언제 어디서 사용되는가?

자바 직렬화, 그것이 알고싶다. 훑어보기편 | 우아한형제들 기술블로그

  • 서블릿 세션

  • 캐시

  • 자바 RMI

Last updated