JPA (3) 썸네일형 리스트형 [JPA] Proxy 객체 / 지연 로딩(LAZY), 즉시 로딩(EAGER) Proxy 객체 - 실제 객체를 상속받아 만들어지는 객체 - 실제 객체를 참조(Target)를 보관 - Proxy 객체 메서드 호출 시 실제 객체의 메서드 호출 - 실제 사용시 초기화 (DB 조회) Member refMember = em.getReference(Member.class, 1L); // Proxy 객체 불러옴 refMember.getName(); // 초기화 -> em.find는 실제 객체를 불러옴 em.getReference() != em.find() 지연 로딩 (LAZY) - 조회 시 실제 객체가 아닌 Proxy 객체를 가져옴 - 실제 사용하는 시점에서 초기화 (DB 조회) @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "TEAM_ID").. [JPA] 기본 키 자동 생성 - @Id, @GenarateValue 전략 Entity에서 기본키를 매핑 @Id 만 사용할 경우 직접 할당 @Id private Long id; 사용 시 Member member = new Member(); member.setId(1L); member.setUsername("memberA"); // 영속 em.persist(member); @GenerateValue를 사용하여 자동 할당 가능 Member member = new Member(); member.setUsername("memberA"); // 영속 em.persist(member); // id 자동 생성 4가지 전략이 존재한다. - IDENTITY DB에 위임하는 방식 ex) Mysql - AUTO_INCREMENT @Id @GeneratedValue(strategy = Generat.. [JPA Error] com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer JPA에서 엔터티를 Json으로 Serialize할때 연관된 다른 엔터티를 Json으로 변경 못하는 문제 -해결법 fetch = FethchType.Lazy을 지워줌 또는 @JsonIgnore 어노테이션을 붙혀줌 이전 1 다음