JPA8 [JPA] save() ์ saveAndFlush() ์ ์ฐจ์ด save ๊ธฐ๋ฅ๊ฐ์ฒด์งํฅ ์ค๊ณ ์ค์ฌ์์์ Entity ๊ฐ์ฒด๋ฅผ ORM ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ๊ธฐ๋ฅsave() ๋ฉ์๋๐ ์์์ฑ ์ปจํ ์คํธ์๋ง ์ ์ฅ (DB์ ๋ฐ๋ก ์ ๋ ๋ฆผ)save() ๋ฉ์๋๋ ๋ฐ๋ก DB ์ ์ ์ฅ๋์ง ์๊ณ ์์์ฑ ์ปจํ ์คํธ์ ์ ์ฅ๋์๋ค๊ฐ flush() ๋๋ commit() ์ํ ์ DB์ ์ ์ฅ๋จ → 1์ฐจ ์บ์์ ์ ์ฅ → ํธ๋์ญ์ ์ปค๋ฐ ์ flush → ๊ทธ๋ INSERT ์คํ saveAndFlush() ๋ฉ์๋๐ ์ ์ฅ + ์ฆ์ flush (DB์ ๋ฐ๋ก INSERT ์คํ)saveAndFlush() → ์ ์ฅ → ์ฆ์ flush → ์ฆ์ INSERT ์คํ ๋์ ๋น๊ต1. save() ๋ฉ์๋ ๋๋ฒ๊น orderRepository.save() ์ํ ํDB ๋ก ๋ณด๋ด๋ ์ฟผ๋ฆฌ๊ฐ ์์ -> ์์ง DB์ ์ ์ฅ๋.. 2026. 3. 24. [JPA] findById์ getReferenceById ์ฐจ์ด SpringBoot ํ๋ก์ ํธ๋ฅผ ์ฝ๋ ๋ฆฌํฉํ ๋ง ๊ณผ์ ์์ JPA์์ ์ ๊ณตํ๋ findById๋ง์ ์ฌ์ฉํ๊ณ ์๋ค๊ฐgetReferenceById๋ ์๊ฒ ๋์ด ์ ๋ฆฌ ํฌ์คํธ๋ฅผ ์์ฑํ๋ค. findById() - ์ฆ์ ๋ก๋ฉ๐ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฆ์ DB์์ ์กฐํMember member = memberRepository.findById(1L).get();// ๐ ์ด๋ฏธ SQL ์คํ๋จํน์งํธ์ถ ์์ ์ ๋ฐ๋ก SQL ์คํ์ค์ ์ํฐํฐ ๊ฐ์ฒด๋ฅผ ๋ฐํOptional ํํ๋ผ null ์์ ์ฑ ์์๊ฐ์ด ์์ผ๋ฉด Optional.empty()์ธ์ ์ฌ์ฉ?๋ฐ์ดํฐ๊ฐ ์ค์ ๋ก ํ์ํ ๊ฒฝ์ฐํ๋ ๊ฐ์ ๋ฐ๋ก ์ฌ์ฉํด์ผ ํ ๋getReferenceById() -์ง์ฐ ๋ก๋ฉ๐ ํ๋ก์ ๊ฐ์ฒด(๊ฐ์ง ๊ฐ์ฒด) ๋จผ์ ๋ฐํ → ํ์ํ ๋ DB ์กฐํMember member = .. 2026. 3. 23. [SpringBoot] ์ํฐํฐ int VS Integer ํ์ ์ฐจ์ด int ํ์ ์ ๊ธฐ๋ณธํ์ ์ด๊ณ , Integerํ์ ์ ๋ํผํด๋์ค์ด๋ค.๋ง์ฝ ๋๋ฉ์ธ์ null์ด ๋ค์ด์จ๋ค๋ฉด intํ์ ์ ์๋ฌ์ด๊ณ , Integerํ์ ์ null๊ฐ ์ผ๋ก ๋ฐ์๋ค์ธ๋ค.๋ฐ๋ผ์, ๊ฐ๊ฒฉ์ด ์์ ๋ null๋ก ํ๊ณ ์ถ์ผ๋ฉด Integerํ์ ์ผ๋ก ์ ์ธํ๋ฉด ๋๊ณ , @Column private Integer price; //๊ฐ๊ฒฉ0์ผ๋ก ํ๊ณ ์ถ์ผ๋ฉด int ํ์ ์ผ๋ก ํ๋ฉด ๋๋ค.๋๊ฐ ํ์ฉX์ด๋ฉด int๋ก ํด์ @Column(nullable = false) private int price; //๊ฐ๊ฒฉ์ด๋ ๊ฒ ํ๋ฉด ๋๋ค. 2024. 4. 6. [JPA] Entity PK๋ bigint(MySQL)-Long(java) ํ์ ์ผ๋ก ํด์ผ ํ๋ ์ด์ ํ๋ก์ ํธ ๊ฐ๋ฐ ์ ํฅํ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๊ณ ๋ คํ๋ค๋ฉด JPA๋ฅผ ํตํด Entity PK๋ bigint ํ์ ์ด ์ข๋ค.์ค๊ท๋ชจ์ ํ๋ก์ ํธ๋ฉด int ํ์ ์ด ์ ์ ํ์ง๋ง, ๊ฑฐ์ ๋๋ถ๋ถ์ด ๋๋์ ๋ฐ์ดํฐ๋ฅผ DB์ ์ ์ฅํ๊ฒ ๋๋ฏ๋ก ๊ทธ ๋ง์ ์์ต๊ฑด์ ๋ฐ์ดํฐ๋ค์ ๋ค ์์ ํ๋ ค๋ฉด ๊ฝค ๋ง์ ์๊ฐ์ด ์์๋๊ธฐ ๋๋ฌธ์ ์ ์ด์ ๊ฐ๋ฐ ์ bigint ํ์ ์ผ๋ก ํ๋ ๊ฒ์ด ์ข๋ค. ๋น๋ก intํ์ ๋นํด ๋์คํฌ ์ฉ๋์ ๋ง์ด ์ฐจ์งํ์ง๋ง ํฅํ ์ ์ง๋ณด์๋ฅผ ์ํด์ bigint ํ์ ์ผ๋ก ํ๋ ๊ฒ์ด ์ณ๋ค. 2024. 2. 15. [JPA] @Setter ๋์ @Builder ์ฌ์ฉํด์ผํ๋ ์ด์ @Setter๋ก ์์ฑ์ ์ด์ฉ vs @Builder๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด, @Setter๋ฅผ ์ฌ์ฉํ๋ฉด @Builder๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ํฐ ๋จ์ ๋ค์ด ๋ง๋ค. ์๋ฅผ ๋ค์ด, Setter ์์ฑ์๋ก ์ด๊ธฐํ ์ํฌ ์ ์ฝ๋๊ฐ ๊ธธ์ด ์ง๋ค.๋ํ, ๋๋ฝ๋ ํ๋๊ฐ ์์ด๋ ์ปดํ์ผ๋ฌ๋ ์๋ฌด ๊ฒฝ๊ณ ๋ฅผ ์์ค๋ค.๊ฐ์ฒด๊ฐ “๋ถ์์ ํ ์ํ”๋ก ์กด์ฌํ ์ ์๋ค.setter๊ฐ public์ด๋ฉด ์ธ๋ถ์์ ์ธ์ ๋ ํ๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๋ค. (์บก์ํ ๊นจ์ง) ์ด๋ฌํ ์ ๋ค๋ก ์ธํด, ์ค๋ฌด์์๋ ์ค๋ฌด์์๋ @Setter๋ฅผ ์์ ํ ์์ ๊ณ @Builder + private ์์ฑ์ ๋ฅผ ๋ง์ด ์ด์ฉํ๋ค.@Builder๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ค ์ฝ๋๋ก ๊ฐํธํ๊ณ , ์ด๋ค ํ๋์ ์ด๋ค ๊ฐ์ ์ฑ์์ผ ํ๋์ง ๋ช ํํ ์ ์ ์๋ค.๊ทธ๋ ๋ค๋ฉด @Builder์ ์๋ฏธ์ ์ฌ์ฉ๋ฒ์ ์๋์์ ์์๋ณด์. ๐น @.. 2024. 2. 14. [JPA] jpa insert์ default ์ ์ฉ jpa ์ํฐํฐ default ์ค์ ์ ํ๋ ค๋ฉด @DynamicInsert ์ด๋ ธํ ์ด์ ๊ณผ @ColumnDefault ์ด๋ ธํ ์ด์ ์ ๊ฐ์ด ์จ์ผ ์ ์ฉ์ด ๋๋ค. ์์์ฝ๋(java):package com.pnow.domain;import com.pnow.domain.user.User;import lombok.Getter;import lombok.Setter;import org.hibernate.annotations.ColumnDefault;import org.hibernate.annotations.DynamicInsert;import javax.persistence.*;import java.time.LocalDate;import java.time.LocalTime;@Setter //jpa ํ ์คํธ๋ฅผ ์ํด@Getter@En.. 2024. 2. 13. [JPA] jpa ๋ฉ์๋ ์ง๋ฌธ ๋ฐ์ดํฐ ์ ์ฅํ๊ธฐ1) ์ง๋ฌธ ์ํฐํฐ๋ก ํ ์ด๋ธ์ ๋ง๋ค์์ผ๋ ์ด์ ๋ง๋ค์ด์ง ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ณ ์ ์ฅํด ๋ณด์. ๋จผ์ , src/test/java ๋๋ ํฐ๋ฆฌ์ com.mysite.sbb ํจํค์ง์ SbbApplicationTests.java ํ์ผ์ ์ด์ด ๋ณด์.2) SbbApplicationTests.java ํ์ผ์ ์ด์๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ ํด ๋ณด์.package com.mysite.sbb;import java.time.LocalDateTime;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBoo.. 2024. 2. 12. [SpringBoot] jpa ์ํฐํฐ 3์ ๋ jakarta ํจํค์ง ์ฃผ์์ฌํญ jpa ์ํฐํฐ ์ค์ ํ ๋ ํจํค์ง๋ฅผ ๋ฒ์ ๋ณ๋ก ๋ค๋ฅด๊ฒ ์จ์ผ ํ๋ค. ์คํ๋ง๋ถํธ 2.x ๋ฒ์ import javax.* ์คํ๋ง๋ถํธ 3.x ๋ฒ์ import jakarta.* jpa 3.x๋ฒ์ jakarta ํจํค์ง ์์:package com.mysite.sbb;import java.time.LocalDateTime;import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.GenerationType;import jakarta.persistence.Id;import lombok.Getter;import lombok.Setter;@G.. 2024. 2. 11. ์ด์ 1 ๋ค์