티스토리 뷰
Spring Data Jpa @ManyToOne 양방향 Mapping하기
KyeongRok Kim 2017. 6. 28. 11:36Spring Data Jpa @ManyToOne 양방향 Mapping하기
Spring Data Jpa는 굉장히 괜찮은 프레임웍이다. 기능이 많고 유연한데 그만큼 제약이 많고 잘 알고 써야 한다.
가장 어려운것은 Mapping이다.
소스코드는 여기
https://github.com/Kyeongrok/baseball_mapping
목차는 다음과 같다.1.Project빌드
2.필요한 라이브러리 선택
- JPA, MySql, JDBC, H2
3.application-test.yml 만들기
5.Team 엔티티(Entity) 만들기
6.Lombok 설정
7.TeamRepository 만들기
8.TeamRepository test code 만들기
좌측 Spring Initializer를 선택한다.
Next누른다.
프로젝트 이름 등을 정한다.
Type을 Gradle Project로 바꿔준다. 시나리오가 야구 경기중 특정 팀의 이닝별 점수를 ManyToOne 양방향 매핑을 할 것이기 때문에 artifact, name을 baseball로 했다.
필요한 라이브러리를 선택한다.
일단 이번 포스트의 주인공인 JPA를 선택하고 DB는 H2로 할 것이다. MySql은 나중에 연결하고 싶을 수도 있어서 import한다. JDBC는 예의상 import한다.
테스트 설정 파일 넣기
test/resources 를 만들고 아래 파일을 만든다.
application-test.yml
spring: jpa: database: H2 generate-ddl: true show-sql: true hibernate:
ddl-auto: create
Team 엔티티(Entity) 만들기
com.entites에 Team 클래스를 만든다.
일단 되는지만 보기 위해서 최소한의 id와 name field만 넣는다.
@Entity, @Data annotation을 붙혀준다.
롬복(Lombok)설정 하기
ctrl + alt + s 를 눌러서 설정을 연 후에 annotation으로 검색해서 위와 같이 Enable annotation processing에 체크 한다.
TeamRepository만들기
TeamRepository test code 만들기
Test Code를 만든다.
TeamRepositoryTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
@RunWith(SpringRunner.class)
@DataJpaTest
@ActiveProfiles("test")
public class TeamRepositoryTest {
@Autowired
private TeamRepository teamRepository;
@Test
public void saveAndSelect() throws Exception {
Team team = new Team();
team.setId(1);
team.setName("한화");
teamRepository.save(team);
Team selectedTeam = teamRepository.findOne(1l);
assertEquals(1l, selectedTeam.getId());
assertEquals("한화", selectedTeam.getName());
}
}
|
cs |
Test 실행하기
이렇게 파란불이 들어오면 잘 만들었고 잘 실행 된 것이다.
'Spring > Spring Boot(스프링 부트)' 카테고리의 다른 글
spring boot 실시간 hot deploy하기 (0) | 2018.02.05 |
---|---|
@SpringBootTest와 @DataJpaTest 차이점 (0) | 2017.07.05 |
Spring Data Jpa @Discriminator 다대일 Mapping (0) | 2017.06.28 |
@DiscriminatorColumn을 이용한 Spring Data Jpa 상속관계(Inheritance) 매핑 하기 (2) | 2017.06.22 |
Spring Data Jpa로 Restful API구축 할 때 날짜 출력 설정 (0) | 2017.06.02 |
- Total
- Today
- Yesterday
- 도커각티슈케이스
- docker container tissue box
- 이직
- 도커티슈박스
- 도커컨테이너
- docker container
- docker container whale
- Sh
- shellscript
- 도커각티슈박스
- 싱가폴
- 2017 티스토리 결산
- docker container tissue
- 도커티슈케이스
- Linux
- 개발자
- vim
- docker container case
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |