JPA샘플
|
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
|
@Entity // DB 테이블 역할을 합니다.
public class User {
// ID가 자동으로 생성 및 증가합니다.
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
// nullable: null 허용 여부
// unique: 중복 허용 여부 (false 일때 중복 허용)
@Column(nullable = false, unique = true)
private String username;
@Column(nullable = false)
private String password;
@Column(nullable = false, unique = true)
private String email;
@Column(nullable = false)
@Enumerated(value = EnumType.STRING)
private UserRoleEnum role;
@Column(unique = true)
private Long kakaoId;
}
|
cs |

DB의 연관관계 이해
자바는 객체와 레퍼런스로, 데이터베이스는 테이블사이의 관계(FK)로 정보 사이의 연관관계를 표현하고 처리한다는 내용 기억나시죠? 이 두 방식의 차이를 해결해주기 위해서 JPA에는 “Java 어플리케이션 상에서”, “데이터베이스의 연관관계”를 표현해주기 위한 장치들을 가지고 있습니다.
-
- DB 의 연관관계 체크사항
- JPA 가 제공하는 연관관계는 결국 DB 의 연관관계를 표현하기 위함 입니다.
- 따라서 먼저 DB 의 연관관계를 이해해야 합니다.
- DB 의 연관관계는 비즈니스 요구사항에 맞춰 이루어집니다.
-
- 음식 주문앱 DB 설계 예제
1. 각 주체의 테이블 설계

2. 연관 관계 고민
- 고객이 음식 주문 시, 주문 정보는 어느 테이블에 들어가야 할까요?
- 고객 테이블? 음식 테이블??
- Tip) 테이블 설계 시 실제 값을 넣어보면 짐작하기 조금 더 쉽습니다.
- 시도1) "고객 테이블" 에 주문 정보를 넣어 볼까요?

- 시도2) "음식 테이블" 에 주문 정보를 넣어볼까요?

- '주문'을 위한 테이블이 필요 → Order 테이블 추가

'JAVA > Spring' 카테고리의 다른 글
| 2023.01.02 Spring Security...ing (0) | 2023.01.02 |
|---|---|
| 2022.12.21 Lombok (0) | 2022.12.22 |
| 2022.12.07 JPA 기초 ...ing (0) | 2022.12.07 |
| 2022.12.06 Database와 SQL (0) | 2022.12.06 |
| 2022.12.05 웹 동작방식의 이해 (0) | 2022.12.05 |