๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ฅ/์กฐํํ๋ ํด๋์ค์
@Entity๋ผ๋ ์ด๋ ธํ ์ด์ ์ ๋ถ์ฌ์คฌ๋ค.
์ @Entity๋ฅผ ๋ถ์ฌ์ผํ ๊น?
@Entity
- @Entity๊ฐ ๋ถ์ ํด๋์ค๋ JPA๊ฐ ๊ด๋ฆฌํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ๊ณผ 1:1๋ก ๋งคํ๋๋ ์์ ํด๋์ค์์ ์ ์ธํ๋ ์ ๋ ธํ ์ด์ ์ด๋ค.
- ์ด ํด๋์ค๋ก ๋ง๋ ๊ฐ์ฒด๋ ์์์ฑ ์ปจํ ์คํธ์ ์ํด ๊ด๋ฆฌ๋๋ฉฐ, Spring Data JPA๊ฐ ์กฐํ/์ ์ฅ/์์ /์ญ์ ๋ฅผ ๋ด๋นํ๋ค.
- ๊ธฐ๋ณธ ์์ฑ์๋ ํ์์ด๋ค. (JPA๊ฐ ์ํฐํฐ ๊ฐ์ฒด ์์ฑ ์ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ์ฌ์ฉ)
- final ํด๋์ค, enum, interface, inner class ์๋ ์ฌ์ฉํ ์ ์๋ค.
- ์ ์ฅํ ํ๋์ final ์ฌ์ฉ ๋ถ๊ฐํ๋ค.
@Entity ์์ ์ฝ๋
@Entity
@Getter
@Setter
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String userId;
private String pw;
private String tel;
private String birth;
private String email;
}
Member ํด๋์ค์ @Entity๋ฅผ ๋ถ์ฌ์ JPA๊ฐ ๊ด๋ฆฌํ๋๋ก ์ง์ ํ๋ค. ๊ทธ๋ฌ๋ฉด JPA๊ฐ ์กฐํ/์ ์ฅ/์์ /์ญ์ ๋ฅผ ๋ด๋นํด์ค๋ค. JPA๊ฐ ์กฐํ/์ ์ฅ/์์ /์ญ์ ๋ฅผ ๋ด๋นํ๋ค๋๊ฒ ๋ฌด์จ ๋ง์ผ๊น? ๋ง์ฝ @Entity๋ฅผ ์ค์ ํ์ง ์๋๋ค๋ฉด ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ง์ SQL์ ์ ์ด์ผํ๋ค. ์ฌ์ฉ์์ ์ ํ๋ฒํธ์ ์์ ํ๊ธฐ ์ํด ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์ ์ด์ผํ ๊ฒ์ด๋ค.
public void deleteById(Long id) { jdbc.update("DELETE FROM member WHERE id=?", id); }
@Entity๊ฐ ์์ผ๋ฉด ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ค.public void remove(Long id) { repo.deleteById(id); }
๋ฌผ๋ก ์์ ์ฝ๋๋ @Entity๋ง ์ค์ ํ๋ค๊ณ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์๋๋ค. ๋ ํฌ์งํ ๋ฆฌ์ extends JpaRepository<Member, Long>์ ์ค์ ํด์ผ CRUD(deleteById์ ๊ฐ์)๊ฐ ๋์ํ๋ค.
JpaRepository๋ฅผ ์ฐ๋ ค๋ฉด ๋๋ฉ์ธ ํด๋์ค๊ฐ ๋ฐ๋์ JPA ์ํฐํฐ์ฌ์ผ ํ๋ค. @Entity(๊ทธ๋ฆฌ๊ณ @Id)๊ฐ ์์ผ๋ฉด JPA๊ฐ ๊ทธ ํด๋์ค๋ฅผ ๊ด๋ฆฌ ๋์์ผ๋ก ์ธ์ํ์ง ๋ชปํด ๋ถํ ์ค๋ฅ๋ ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. JpaRepository๋ ์ํฐํฐ๋ก ๋ฑ๋ก(@Entity)๋๊ณ , ์๋ณ์(@Id)๊ฐ ์์ด์ผ ์์์ฑ ์ปจํ ์คํธ๊ฐ ๊ฐ์ฒด๋ฅผ ์ถ์ ํ๊ณ INSERT/SELECT/UPDATE/DELETE SQL์ ์์ฑํ ์ ์๋ค.
์ฌ์ค @Entity ์์ ์ฝ๋๋ ์ต์ ์์ฑ๋ง ์ ์ ๊ฒ์ด๋ค. ๊ทธ ์์ @Table, @Column, @Enumerated ๋ฑ ์ธ๋ถ์ ์ผ๋ก ์์ฑ์ ์กฐ์ ํ ์ ์๋ค.
[JPA] ์ํฐํฐ์ ๋งคํ. @Entity, @Table, @Id, @Column..
| ์ํฐํฐ์ ๋งคํ ๊ฐ์ฒด์ ํ ์ด๋ธ ๋งคํ : @Entity, @Table๊ธฐ๋ณธ ํค ๋งคํ : @Idํ๋์ ์ปฌ๋ผ ๋งคํ : @Column์ฐ๊ด๊ด๊ณ ๋งคํ : @ManyToOne, @JoinColumn 12345678910111213141516171819202122232425262728293031323334353637383940414243@Entity// n
data-make.tistory.com
์๋์ ์ถ์ฒ๋ฅผ ๋จ๊ฒจ๋๊ฒ ์ต๋๋ค.
๋ธ๋ก๊ทธ์ ์ ๊ฐ ์ต๋ํ ์ดํดํ ๋ด์ฉ๊น์ง๋ง ์ ๋๊ฑฐ๋ผ
์ถ์ฒ์ ๋ค์ด๊ฐ์๋ฉด ๋ ๋ง์ ๋ด์ฉ์ด ์์ด ๊ณต๋ถํ์๋๋ฐ ๋์๋์ค๊ฒ๋๋ค.
๐ชฝ
ํ๋ฆฐ ๋ด์ฉ์ด ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํฐํฐ(Entity)๋ ๋ฌด์์ธ๊ฐ?
์ํฐํฐ(Entity)๋? ์ํฐํฐ(Entity)๋ฅผ ๊ทธ๋๋ก ๋ฒ์ญํ๋ฉด ์ค์ , ๋ ๋ฆฝ์ฒด๋ผ๋ ๋ป์ผ๋ก ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์์ ์ฌ์ฉ๋๋ ๊ฐ์ฒด๋ผ๊ณ ์๊ฐํ์๋ฉด ๋๊ฒ ์ต๋๋ค. ์ฆ ์ํฐํฐ(Entity)๋ ์ ๋ฌด์ ํ์ํ๊ณ ์ ์ฉํ ์ ๋ณด๋ฅผ ์
coding-factory.tistory.com
[JPA] ์ํฐํฐ์ ๋งคํ. @Entity, @Table, @Id, @Column..
| ์ํฐํฐ์ ๋งคํ ๊ฐ์ฒด์ ํ ์ด๋ธ ๋งคํ : @Entity, @Table๊ธฐ๋ณธ ํค ๋งคํ : @Idํ๋์ ์ปฌ๋ผ ๋งคํ : @Column์ฐ๊ด๊ด๊ณ ๋งคํ : @ManyToOne, @JoinColumn 12345678910111213141516171819202122232425262728293031323334353637383940414243@Entity// n
data-make.tistory.com
'๐ท Spring > ๊ฐ๋ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Spring] HttpEntity์ x-www-form-urlencoded์ด๋? ํผ ์ ์ก์ ์ฝ๋ ์ดํด๋ณด๊ธฐ. (0) | 2025.09.21 |
|---|---|
| [Spring] StringUtils.hasText()๋ก ๋ฌธ์์ด ์ ํจ์ฑ ๊ฒ์ฆํ๊ธฐ. (0) | 2025.09.16 |
| [Spring] @Id์ @GeneratedValue์ด๋? (0) | 2025.09.08 |
| [SpringSecurity] @EnableWebSecurity, SecurityFilterChain ๊ฐ๋ ๊ณผ ์์ (2) | 2025.08.28 |
| [Spring] @RequestMapping์ด๋? (0) | 2025.08.20 |