[Spring] JPA Entity class

μ‘°λ―Όκ²½Β·2025λ…„ 3μ›” 12일
0

Spring

λͺ©λ‘ 보기
8/13

🏒 JPA Entity class

πŸ“Œ μ•„λž˜λŠ” JPA Entity class둜 userλΌλŠ” ν…Œμ΄λΈ”κ³Ό μ—°κ²°λ˜μ–΄ μžˆλŠ” μ½”λ“œμ΄λ‹€.

@Getter
@Entity
@NoArgsConstructor
@Table(name = "users")
public class User {

    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
}

πŸ“¦ @Getter

  • Lombok의 annotation

  • ν•΄λ‹Ή 클래슀의 λͺ¨λ“  ν•„λ“œμ— λŒ€ν•œ getter λ©”μ„œλ“œλ₯Ό μžλ™μœΌλ‘œ μƒμ„±ν•œλ‹€.

  • 예λ₯Ό λ“€μ–΄, getId() λ©”μ„œλ“œλ₯Ό μžλ™μœΌλ‘œ μƒμ„±ν•œλ‹€.


🏒 @Entity

  • JPAμ—μ„œ 이 ν΄λž˜μŠ€λŠ” μ—”ν‹°ν‹°μž„μ„ λ‚˜νƒ€λ‚΄λŠ” annotation

  • @Entityκ°€ 적용된 ν΄λž˜μŠ€λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν…Œμ΄λΈ”κ³Ό λ§€ν•‘λœλ‹€.


πŸ”¨ @NoArgsConstructor

  • Lombok의 annotation으둜, μΈμžκ°€ μ—†λŠ” κΈ°λ³Έ μƒμ„±μžλ₯Ό μžλ™μœΌλ‘œ μƒμ„±ν•œλ‹€.

  • JPAμ—μ„œ μ—”ν‹°ν‹° ν΄λž˜μŠ€λŠ” λ°˜λ“œμ‹œ κΈ°λ³Έ μƒμ„±μžκ°€ μžˆμ–΄μ•Ό ν•˜λ―€λ‘œ, 이 μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•΄ μƒμ„±μžλ₯Ό μΆ”κ°€ν•˜λŠ” 역할을 ν•œλ‹€.


πŸ—‚οΈ @Table(name = "users")

  • ν•΄λ‹Ή μ—”ν‹°ν‹° ν΄λž˜μŠ€κ°€ 맀핑될 ν…Œμ΄λΈ”μ˜ 이름을 μ§€μ •ν•œλ‹€.

  • 이 경우 usersλΌλŠ” ν…Œμ΄λΈ”κ³Ό μ—°κ²°λœλ‹€.

  • λ§Œμ•½ @Table이 μ—†μœΌλ©΄, 기본적으둜 클래슀 이름(μ—¬κΈ°μ„œλŠ” User)이 ν…Œμ΄λΈ” μ΄λ¦„μœΌλ‘œ μ‚¬μš©λœλ‹€.


πŸ”‘ @Id와 @GeneratedValue(strategy = GenerationType.IDENTITY)

  • @IdλŠ” 이 ν•„λ“œκ°€ Primary Keyμž„μ„ λ‚˜νƒ€λ‚Έλ‹€.

  • @GeneratedValue(strategy = GenerationType.IDENTITY)λŠ” ID 값을 μžλ™μœΌλ‘œ μƒμ„±ν•˜κ²Œ ν•˜λŠ” 섀정이닀.

  • GenerationType.IDENTITYλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μžλ™ μ¦κ°€ν•˜λŠ” ν•„λ“œλ‘œ μ„€μ •ν•˜λŠ” 방식이닀.


πŸ”’ private Long id;

  • User μ—”ν‹°ν‹°μ—μ„œ ID ν•„λ“œμ΄λ‹€.

  • 이 값은 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μžλ™μœΌλ‘œ μƒμ„±λ˜λ©°, Long νƒ€μž…μœΌλ‘œ μ„€μ •λ˜μ–΄ μžˆλ‹€.

0개의 λŒ“κΈ€