λ¨Όμ user ν¨ν€μ§μ entity λΆν° μ€λͺ νκ² μ΅λλ€.π
κ°μ₯ λ¨Όμ νμ μν°ν°μ λκ° λ€μ΄κ°μΌ λ μ§ μκ°μ νμ΅λλ€. ! (νμ μμ£Ό μ¬μ©νλ 'λ€μ΄λ²' ν¬νΈ μ¬μ΄νΈ λ 'μΉ΄μΉ΄μ€'λ±,, λ‘κ·ΈμΈ, νμ κ°μ μ νμνλ μ 보λ€μ λ μ¬λ Έμ!)
1. μλ³ μ½λ,
2. μ΄λ©μΌ,
3. λΉλ°λ²νΈ,
4. νμμ΄λ¦,
5. κ°μ λ μ§
κ°λ¨νκ² νμ κ°μ , λ‘κ·ΈμΈ , κ²μνμ λ§λ€ κ±°λΌμ μν°ν° λν μ΅λν μ¬ννκ² μ€μ νμμ΅λλ€.
UserEntity μ 체 μ½λ
package com.example.projectpicker.user.entity;
import com.example.projectpicker.post.entity.PostEntity;
import lombok.*;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Setter @Getter @ToString(exclude = "PostId")
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(of = "id") // id λ§ λΉκ΅ν΄λΌ. κ΅³μ΄ λΉλ²,μ΄λ¦κΉμ§ λΉκ΅ν νμx
@Builder
@Entity
@Table(name = "tbl_user")
public class UserEntity {
@Id
@Column(name = "user_id")
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid") // idκ° μ€λ³΅λμ§ μλλ‘
private String userId; // μλ³ μ½λ
@Column(name = "user_email",unique = true, nullable = false) // unique=true: μ€λ³΅x / nullable=false : νμ κ°
private String userEmail; // μ΄λ©μΌ
@Column(name = "user_password",nullable = false)
private String userPassword; // λΉλ°λ²νΈ
@Column(name ="user_name",nullable = false)
private String userName; // νμ μ΄λ¦
@CreationTimestamp
private LocalDateTime joinDate; // κ°μ
λ μ§
/**
* κ²μν κ³Ό κ΄κ³ν 맀ν
*/
@OneToMany(mappedBy = "userEntity")
private List<PostEntity> PostId = new ArrayList<>(); //ν΄μνκ·Έ λͺ©λ‘
}
μ 체 μ½λλ₯Ό μ΄ν΄λ³΄λ©΄ @(μ΄λ Έν μ΄μ ) μ€μ μ ν©λλ€.
μ΄λ Έν μ΄μ μ λν΄ μ€λͺ νκΈ°μ ! νλ‘μ νΈ μ΄κΈ° μ€μ ν λ, dependencies μμ lombok(둬볡)μ μΆκ°νμλ€.
Lombokμ΄ μ΄λ° @(μ΄λ Έν μ΄μ )μ μ 곡νλ λΌμ΄λΈλ¬λ¦¬ μ΄λ€.
κ·Έ μ€ λͺκ°μ μ΄λ Έν μ΄μ μ λν΄ μ€λͺ νμλ©΄
@Getter , @Setter κ° μλλ°, μ΄λ κ°κ° μ κ·Όμμ μ€μ μ λ©μλλ₯Ό μμ±ν΄μ£Όλ Lombok μ΄λ Έν μ΄μ μ΄λ€.
μ΄ μ΄λ Έν μ΄μ μ μ λ§ μμ£Ό μ¬μ©λλ©° νΈλ¦¬νλ€.
μ΄λ κ² μ€λͺ νλ©΄ μ΄ν΄κ° μ μλ μλ μμκ±° κ°μλ°
@Getter λ λκ° 'κΊΌλ΄λ λ μ' μ΄κ³ ,
@Setter λ 'μ€μ ν΄μ£Όλ λ μ' μ΄λΌκ³ μκ°νλ©΄ μ΄ν΄νκΈ° μ½λ€. (κ°μΈμ .μΌλ‘?π)
@NorgsConstructor : νλΌλ―Έν°κ° μλ κΈ°λ³Έ μμ±μ μμ±
@AllArgsConstructor : λͺ¨λ νλ κ°μ νλΌλ―Έν°λ‘ λ°λ μμ±μλ₯Ό λ§λ€μ΄ μ€λ€.
@RequiredArgsConstructor : finalμ΄λ @NonNull μΈ νλ κ°λ§ νλΌλ―Έν°λ‘ λ°λ μμ±μλ₯Ό λ§λ€μ΄ μ€λ€.
@ToString : toString()λ©μλλ₯Ό μλ μμ±
@EqualsAndHashCode : equals, hashCode μλ μμ±
- equals : λ κ°μ²΄μ λ΄μ©μ΄ κ°μμ§, λλ±μ±(equality) λ₯Ό λΉκ΅νλ μ°μ°μ
- hashCode : λ κ°μ²΄κ° κ°μ κ°μ²΄μΈμ§, λμΌμ±(identity) λ₯Ό λΉκ΅νλ μ°μ°μ
++
DBμ μ§μ μ μΌλ‘ 맀νλμ΄μλ Entity
'Springπ > κ°λ¨ν κ²μν λ§λ€κΈ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JPA] κ°λ¨ν κ²μν λ§λ€κΈ° - user (UserRepository) (1) | 2023.02.11 |
---|---|
[JPA] κ°λ¨ν κ²μν λ§λ€κΈ° - user (LoginRequestDTO, LoginResponseDTO) (0) | 2023.02.11 |
[JPA] κ°λ¨ν κ²μν λ§λ€κΈ° - user (UserSignupResponse DTO) (0) | 2023.02.11 |
[JPA] κ°λ¨ν κ²μν λ§λ€κΈ° - user (DTO) (1) | 2023.02.11 |
[JPA] κ°λ¨ν κ²μν λ§λ€κΈ° - μ΄κΈ° μ€μ (0) | 2023.02.11 |