h2 버전에 맞게 설치 - External Libraries 에서 버전 확인 - 스프링 부트가 자동으로 알맞은 버전을 사용중 이므로
h2 데이터베이스 파일 생성 방법
C:\Program Files (x86)\H2\bin\h2.bat 실행 <- h2 서버? 실행
- jdbc:h2:~/jpashop (최초 접속시)
- ~/jpashop.mv.db 파일 생성 확인
- 이후 부터는 jdbc:h2:tcp://localhost/~/jpashop 이렇게 접속
application.yml
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/jpashop
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create # 애플리케이션 실행 시점에 테이블을 drop 하고, 다시 생성한다.
properties:
hibernate:
# show_sql: true # System.out 에 하이버네이트 실행 SQL을 남긴다.
format_sql: true
logging.level:
org.hibernate.SQL: debug # logger를 통해 하이버네이트 실행 SQL을 남긴다.
# org.hibernate.type: trace
yml 파일 format_sql 작동 안함 - 해결방법 아래 포스팅 참조
Entity
@Entity
@Getter @Setter
public class Member {
@Id @GeneratedValue
private Long id;
private String username;
}
Repository
@Repository
public class MemberRepository {
@PersistenceContext
private EntityManager em;
public Long save(Member member){
em.persist(member);
return member.getId();
}
public Member find(Long id){
return em.find(Member.class, id);
}
}
테스트 코드
//@RunWith(SpringRunner.class) JUnit4 버전 사용시 선언, 5버전은 선언X
@SpringBootTest
class MemberRepositoryTest {
@Autowired MemberRepository memberRepository;
@Test
@Transactional
@Rollback(false)
public void testMember() throws Exception {
//given
Member member = new Member();
member.setUsername("memberA");
//when
Long savedId = memberRepository.save(member);
Member findMember = memberRepository.find(savedId);
//then
Assertions.assertThat(findMember.getId()).isEqualTo(member.getId());
Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername());
Assertions.assertThat(findMember).isEqualTo(member); //JPA 엔티티 동일성 보장
}
}
자동완성 세팅 -> Live templates -> custom 폴더 생성 -> tdd 생성
change - java 선택
로깅
- 외부 라이브러리 사용
build.gradle에 추가
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6'
'프로그래밍 > SpringBoot & JPA Use1' 카테고리의 다른 글
casecade (0) | 2022.06.19 |
---|---|
엔티티 설계시 주의점 (0) | 2022.06.19 |
엔티티 클래스 개발 (0) | 2022.06.19 |
도메인 분석 설계 (0) | 2022.06.19 |
View 환경 설정 (0) | 2022.06.19 |