본문 바로가기

Spring/jpa7

jpa @ElementCollection 정리 source 는 Github 에 있습니다. @ElementCollection 정리 JPA 는 ORM 이고 ORM 은 Object Releation Mapping 의 약자입니다. RDB 의 경우 데이터를 저장할 때, collection 단위로 저장할 수 있는 방법이 없습니다. 예를 들면, Member 라는 테이블에 phone_number 가 여러개 들어갈 수 없습니다. JPA 에서는 @ElementCollection 을 이용해서 Collection 대상인 것을 알려줄 수 있습니다. source 및 로그 Member Entity 아래와 같이 Member Entity 에 roles collection 을 만들어주고 ElementCollection 을 선언해주면 Roles 테이블이 만들어집니다. @Entity .. 2022. 1. 17.
spring data jpa 에서 데이터 생성일, 수정일 자동 생성 source 는 Github 에 있습니다. spring data jpa 에서 데이터 생성일, 수정일 자동 생성 spring data jpa 에서 데이터 생성일, 수정일 자동 생성에 대해서 정리했습니다. 데이터를 생성하거나 변경할 떄, 매번 컬럼을 생성하고 세팅할 필요 없이 자동으로 하는 방법입니다. 사용방법 @EnableJpaAuditing Application 에 @EnableJpaAuditing 를 붙여줘야 합니다. Jpa Auditing 를 활성화시키는 annotation 입니다. spring data jpa 에서 audit 은 시간을 자동으로 넣어주는 기능입니다. @EnableJpaAuditing @SpringBootApplication public class JpaExampleApplicatio.. 2021. 12. 29.
@DataJpaTest 정리 source 는 Github 에 있습니다. @DataJpaTest 란? Jpa Test 에 포커싱이 맞춰진 테스트 annotation 입니다. 주로 Jpa test 를 할 때, 사용하며 Junit4 를 사용하면 @RunWith(SpringRunner.class) 와 같이 사용해야 합니다. 같이 사용해야하는 이유는 Spring 공식 문서에 같이 써야한다고 나와있습니다. DataJpaTest 는 인메모리 데이터베이스 (기본 H2) 로 설정하며, @Entity 가 붙은 클래스, Spring Data Jpa Repository 를 스캔합니다. Transactional 하며, 테스트가 종료 시 Rollback 기능도 있습니다. @RunWith(SpringRunner.class) 테스트 클래스에 RunWith 를 .. 2021. 12. 15.
spring data jpa ID 생성전략에 따른 동작 방식 정리 source 는 Github 에 있습니다. spring data jpa ID 생성전략에 따른 동작 방식 정리 Entity ID 생성전략에 따른 동작 방식을 정리했습니다. ID 생성 전략이 없을 때, 즉 애플리케이션에서 채번할 때 아래 테스트를 수행할 경우 애플리케이션에서 ID 를 생성해줬기에 DB 에 값이 있나 확인하기 위해 select 를 날려본 후에, INSERT 가 이루어집니다. 즉, merge 방식으로 동작합니다. Hibernate: select nogenerati0_.id as id1_5_0_, nogenerati0_.name as name2_5_0_ from no_generative_strategy nogenerati0_ where nogenerati0_.id=? @Test public voi.. 2021. 6. 22.