JPA

Spring

[Spring Boot] Spring Data JPA에서 BaseEntity 사용하기

BaseEntity란? Spring Boot 내에서 코드를 작성하다 보면 정보가 중복되는 경우가 종종 발생합니다. 이러한 경우를 손쉽게 해결해 주는 방법이 바로 BaseEntity입니다. 아래 코드를 보면 Student와 Professor 클래스 내 정보를 살펴보면, createdBy와 createdDate에서 공통 정보가 발생합니다. 물론 하나하나씩 별도로 작성해 주어도 문제는 없지만, 중복된 것처럼 보일 수 있기에 이를 한 곳에 공통으로 매핑해 주는 것이 좋습니다. @Entity public class Student { @Id @GeneratedValue private Long id; private String name; // 공통 컬럼 private String createdBy; private L..

Spring

@JsonIgnore 이란?

문제점 Spring을 실행하던 도중 [JPA] No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer와 같은 에러문이 발생했다. 이러한 에러문이 발생하는 이유는 @ManyToOne의 Fetch 타입을 Lazy로 사용했을 때 나타나는 문제점이라고 한다. 여기서 비어있는 객체를 Serialize 하려다 에러가 발생하는 것이다. 해결방안 위와 같은 에러를 해결하는 방법 중 하나가 바로 @JsonIgnore 어노테이션이다. 직렬화 시 해당 필드를 포함시키고 싶지 않을 때 선언하는 어노테이션이다. 해당 어노테이션을 사용하..

Spring

영속성 컨텍스트(Persistence Context)

🔎 영속성 컨텍스트란? 엔티티를 영구 저장하는 환경을 뜻한다. 엔티티 매니저(Entity Manager)를 통해서 접근 가능하다. 🔹 활용 예시 em.persist(member); -> persist() 메소드를 통해 em(Entity Manager)을 사용해서 회원 엔티티를 영속성 컨텍스트에 저장함. 엔티티의 생명주기 엔티티의 생명주기에는 총 4가지 상태가 있다. 1. 비영속(new/transient) 영속성 컨텍스트와 전혀 관련이 없는 상태, 순수한 객체 상태 🔹 예시 Member meber = new Member(); member.setId("member1"); member.setUsername("회원1"); 2. 영속(managed) 영속성 컨텍스트에 저장된 상태 영속성 컨텍스트에 의해 관리되는..

주인장 지니
'JPA' 태그의 글 목록
loading