Springboot와 JPA를 이용해 개발을 할 때, 보통 엔티티를 만들고 이를 데이터베이스와 매핑하여 테이블을 생성합니다. 테이블의 컬럼(Column)에서 데이터가 생성된 시간 또는 업데이트된 시간을 표시해야 할 경우가 있습니다. 현재 시간과 업데이트 시간을 표기할 방법은 여러 가지 방법이 있지만, 저는 JPA의 어노테이션 중 @CreationTimeStamp와 @UpdateTimeStamp를 이용한 방법에 대해 설명하겠습니다. 그전에 알아야 할 것이 있습니다. 여러 엔티티에서 각각 현재 시간과 업데이트 시간을 표시할 속성이 필요하다고 한다면 우리는 중복되는 같은 코드를 여러 엔티티 코드에 다 작성해야 합니다. 중복되는 코드를 줄이기 위해서, 우리는 @MappedSuperClass 어노테이션을 이용해 ..
1) JPA 연관관계 매핑 시 고려사항 3가지 ✔ 다중성 ✔ 단방향, 양방향 ✔ 연관관계의 주인 ▼ 다중성 - 애노테이션 정리 - 다대일 : @ManyToOne - 일대다 : @OneToMany - 일대일 : @OneToOne - 다대다 : @ManyToMany 주로 다대일, 일대다, 일대일 관계로 표현하며, 다대다 관계를 가지는 경우 1:N - M:1 관계인 일대다 - 다대일 관계로 풀어서 표현합니다. ▼ 단방향, 양방향 [테이블] : 데이터베이스 - 외래 키 하나로 양쪽 조인이 가능합니다. [객체] : 자바 - 참조용 필드가 있는 쪽에서만 참조가 가능합니다. (한쪽만 참조하면 단방향, 양 쪽이 서로 참조하면 양방향) ▼ 연관관계의 주인 - 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺습니다. -..
(인프런) 자바 ORM 표준 JPA 프로그래밍 - 기본편- 을 바탕으로 작성하였습니다. https://www.inflearn.com/course/ORM-JPA-Basic/dashboard ※ JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기 ( Object Relational Mapping ) 객체 - 데이터베이스 영속성 컨텍스트 이해하기 1. EntityManagerFactory와 EntityManager ✔ EntityManagerFactory는 하나만 생성해서 애플리케이션 전체에서 공유하여 사용합니다. ✔ EntityManager는 Thread 간에 공유하지 않습니다. ✔ EntityManager를 통해서 영속성 컨텍스트에 접근할 수 있습니다. ✔ JPA의 모든 데이터 변경은 트랙잭..