JAVA/Practice

[Spring] JPA๋ฅผ ํ™œ์šฉํ•œ ํšŒ์› ์ •๋ณด ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ตฌํ˜„ํ•˜๊ธฐ

ITs Min 2024. 4. 2.

๐Ÿ” JPA(Java Persistence API)

JPA(Java Persistence API)๋Š” ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ๋งคํ•‘์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ํ‘œ์ค€ API์ด๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” JPA๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํšŒ์› ์ •๋ณด ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•œ๋‹ค.


๐Ÿ”ํšŒ์› ์ •๋ณด ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค ์„ค๊ณ„

ํšŒ์› ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค์ธ UserEntity๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ด ํด๋ž˜์Šค๋Š” MEMBER ํ…Œ์ด๋ธ”๊ณผ ๋งคํ•‘๋œ๋‹ค. UserEntity ํด๋ž˜์Šค์˜ ์ฃผ์š” ์†์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • id: ํšŒ์› ์‹๋ณ„์ž(์ž๋™ ์ƒ์„ฑ)
  • username: ํšŒ์› ์ด๋ฆ„
  • email: ํšŒ์› ์ด๋ฉ”์ผ (๊ธฐ๋ณธ ํ‚ค)
  • pw: ํšŒ์› ๋น„๋ฐ€๋ฒˆํ˜ธ
  • nickname: ํšŒ์› ๋‹‰๋„ค์ž„
  • ph: ํšŒ์› ์ „ํ™”๋ฒˆํ˜ธ
  • birth: ํšŒ์› ์ƒ์ผ
  • gender: ํšŒ์› ์„ฑ๋ณ„

๐Ÿ” ํšŒ์› ์ •๋ณด ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค ๊ตฌํ˜„

์ฃผ์–ด์ง„ UserEntity ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ์› ์ •๋ณด ์—”ํ‹ฐํ‹ฐ๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. ํ•ด๋‹น ํด๋ž˜์Šค๋Š” @Entity ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด JPA๊ฐ€ ์—”ํ‹ฐํ‹ฐ์ž„์„ ์ธ์‹ํ•œ๋‹ค. ๋˜ํ•œ, ๊ฐ ํ•„๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ๊ณผ ๋งคํ•‘๋œ๋‹ค.

package infinitystone.chalKag.biz.customOAuth2;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import lombok.Getter;
import lombok.Setter;

@Entity
@Getter
@Setter
@Table(name = "MEMBER")
public class UserEntity {

    
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Transient
    private String id;
    
    @Transient
    private String role;
    
    @Column(name="MEMBER_name")
    private String username;
    
    @Id
    @Column(name="MEMBER_id")
    private String email;
    
    @Column(name="MEMBER_pw")
    private String pw;
    
    @Column(name="MEMBER_nickname")
    private String nickname;
    
    @Column(name="MEMBER_ph")
    private String ph;
    
    @Column(name="MEMBER_birth")
    private String birth;
    
    @Column(name="MEMBER_gender")
    private String gender;
    
    
    
}

 


๐Ÿ” ํšŒ์› ์ •๋ณด ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„

ํšŒ์› ์ •๋ณด๋ฅผ ์ƒ์„ฑ, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ JPA๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด UserRepository ์ธํ„ฐํŽ˜์ด์Šค์™€ UserService ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์œ„์— ์žˆ๋Š” ํšŒ์› ์ •๋ณด๋ฅผ ํ™œ์šฉํ•ด์„œ ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์™„์„ฑํ–ˆ๋Š”๋ฐ UserRepository์™€ UserService ํด๋ž˜์Šค๋Š” ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ํฌ์ŠคํŒ… ํ•  ๋•Œ ๋‹ด์„ ์˜ˆ์ •์ด๋‹ค.


 

๋Œ“๊ธ€

TOP

๋Šฆ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ๋• ๋„ˆ๋ฌด ๋Šฆ์€ ๊ฑฐ๋‹ค.