BackEnd๐Ÿ/Java๐ŸŽฑ

[IntelliJ] JPA ์‚ฌ์šฉ์‹œ Cannot resolve column' ์˜ค๋ฅ˜ ํ•ด๊ฒฐํ•˜๊ธฐ

IntelliJ IDEA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Java Persistence API(JPA)๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด, ์—”ํ‹ฐํ‹ฐ์˜ ์ปฌ๋Ÿผ์ด๋‚˜ ํ…Œ์ด๋ธ”๋ช…์„ ๋ณ€๊ฒฝํ•  ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” Cannot resolve column ๊ฐ™์€ ๊ฒฝ๊ณ ์— ์ต์ˆ™ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋Š” ์ฝ”๋“œ์ƒ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , IDE์—์„œ ๋นจ๊ฐ„์ƒ‰ ๊ฒฝ๊ณ ์„ ์„ ํ‘œ์‹œํ•˜์—ฌ ๋ถˆ์•ˆ์ •ํ•œ ์ฝ”๋“œ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ git push์™€ ๊ฐ™์€ ๋ฒ„์ „ ๊ด€๋ฆฌ ์ž‘์—…์„ ํ•  ๋•Œ ๋ถˆํ•„์š”ํ•œ ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๋Ÿฌํ•œ ๋นจ๊ฐ„์ค„ ๊ฒฝ๊ณ ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 1. ๋Œ€๋ถ€๋ถ„์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: IntelliJ ์„ค์ • ๋ณ€๊ฒฝํ•˜๊ธฐ ๋Œ€๋‹ค์ˆ˜์˜ ๋ธ”๋กœ๊ทธ๋‚˜ ํฌ๋Ÿผ, ์‹ฌ์ง€์–ด StackOverflow์—์„œ๋„ ๊ฐ€์žฅ ๋จผ์ € ๊ถŒ์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์€ IntelliJ์˜ ํŠน์ • ์˜ต์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ..

2024. 3. 31. 15:55
BackEnd๐Ÿ/Spring๐ŸŽƒ

Spring Security์™€ JPA Auditing์„ ํ™œ์šฉํ•œ ์ž๋™ ๋“ฑ๋ก์ž ๋ฐ ์ˆ˜์ •์ž ์ฒ˜๋ฆฌ

JPA Auditing์ด๋ž€? JPA Auditing์€ ์—”ํ‹ฐํ‹ฐ์˜ ์ƒ์„ฑ ๋ฐ ์ˆ˜์ •์— ๋Œ€ํ•œ ๊ฐ์‚ฌ ์ •๋ณด(๋“ฑ๋ก ์‹œ๊ฐ„, ์ˆ˜์ • ์‹œ๊ฐ„, ๋“ฑ๋ก์ž, ์ˆ˜์ •์ž)๋ฅผ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋งค๋ฒˆ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ๋•Œ ์‹œ๊ฐ„์„ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜, ์ˆ˜์ •์ž๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€ ์—†์ด ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆœ์ˆ˜ JPA ์‚ฌ์šฉ์‹œ Auditing ์„ค์ • ์ˆœ์ˆ˜ JPA ํ™˜๊ฒฝ์—์„œ๋Š” @PrePersist์™€ @PreUpdate ์ฝœ๋ฐฑ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์˜์†ํ™”๋˜๊ธฐ ์ „๊ณผ ์—…๋ฐ์ดํŠธ ๋˜๊ธฐ ์ „์— ์ž๋™์œผ๋กœ ๋‚ ์งœ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @MappedSuperclass @Getter public class BaseEntity { @Column(updatable = false) private LocalDateTime..

2024. 3. 11. 20:15
BackEnd๐Ÿ/Spring๐ŸŽƒ

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ดํ•ด

๋ณธ ์‹œ๋ฆฌ์ฆˆ๋Š” ์ธํ”„๋Ÿฐ ํ•™์Šต ์‚ฌ์ดํŠธ์˜ ๊น€์˜ํ•œ ๊ฐ•์‚ฌ๋‹˜์˜ java spring mvc - ๋ฐฑ์—”๋“œ ์›น ๊ฐœ๋ฐœ ํ•ต์‹ฌ ๊ธฐ์ˆ  ํŽธ์„ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์„œ๋‘ spring์˜ ํ•ต์‹ฌ์›๋ฆฌ๋ฅผ ํ•™์Šตํ•˜๊ณ  spring framework๋ฅผ ํ†ตํ•ด web์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ํ•™์Šต์ด ๋งˆ์ฐฌ๊ฐ€์ง€๊ฒ ์ง€๋งŒ ๊ฐœ๋…์„ ๋ฐฐ์› ๋‹ค๊ณ  ํ•ด์„œ ๊ทธ๊ฒƒ์„ ๋ฐ”๋กœ ์จ๋จน์„ ์ˆ˜ ์žˆ๊ธฐ๋ž€ ๋จธ๋ฆฌ๊ฐ€ ๋น„์ƒํ•œ ์‚ฌ๋žŒ์ด ์•„๋‹Œ ์ด์ƒ ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒƒ์ด ์‚ฌ์‹ค... ๊ฐœ๋…์„ ํ•™์Šตํ–ˆ์œผ๋‹ˆ ์‹ค์ƒํ™œ์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์‘์šฉ(์‹ฌํ™”)์„ ํ•™์Šตํ•ด๋ณด์ž. spring ์›น ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ญ˜๊นŒ? ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ ๋ฌด์—‡๋ณด๋‹ค mvc ํŒจํ„ด์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๊ณ  ์–ด๋–ค ์ƒํƒœ๊ณ„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€๋ฅผ ์•„๋Š” ๊ฒƒ์ด ๋จผ์ € ์„ ํ–‰๋˜์–ด์•ผ ํ• ..

2024. 1. 13. 23:51
BackEnd๐Ÿ/Spring๐ŸŽƒ

Spring Security์—์„œ ๋กœ๊ทธ์ธ ์‹คํŒจ ์ฒ˜๋ฆฌ ๊ตฌํ˜„ (์‚ฌ์šฉ์ž ์ •์˜ ๋กœ๊ทธ์ธ ์‹คํŒจ ํ•ธ๋“ค๋Ÿฌ ๊ตฌํ˜„)

์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜์€ Spring Security์—์„œ ๋กœ๊ทธ์ธ ์‹คํŒจ ์ฒ˜๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์‹คํŒจ ์ƒํ™ฉ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ช…ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Spring Security์˜ AuthenticationFailureHandler ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ •์˜ ๋กœ๊ทธ์ธ ์‹คํŒจ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ์‚ฌ์šฉ์ž ์ •์˜ ๋กœ๊ทธ์ธ ์‹คํŒจ ํ•ธ๋“ค๋Ÿฌ ๊ตฌํ˜„ ๋จผ์ €, AuthenticationFailureHandler ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” CustomAuthenticationFailureHandler ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค: public class CustomAuthenticationFailureHandler implements ..

2024. 1. 12. 00:52
BackEnd๐Ÿ/Spring๐ŸŽƒ

Spring Data JPA - ๋ฒŒํฌ์„ฑ ์ˆ˜์ • ์ฟผ๋ฆฌ

Spring Data JPA ๊ฒŒ์‹œ๊ธ€์€ ๋Œ€๋ถ€๋ถ„ ์ธํ”„๋Ÿฐ์˜ ๊น€์˜ํ•œ๋‹˜์˜ ๊ฐ•์˜์ธ '์‹ค์ „! ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA' ๊ธฐ๋ฐ˜์œผ๋กœ ๋‚ด์šฉ์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฒŒํฌ์„ฑ ์ˆ˜์ • ์ฟผ๋ฆฌ JPA๋Š” ์—”ํ‹ฐํ‹ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ ๋ณ€๊ฒฝ ๊ฐ์ง€ ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•œ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” ํ•œ ๊ฑด ์”ฉ ์ง€์›๋˜๋Š” ๊ฑฐ๊ณ , ๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ์ผ๊ด„์ ์ธ ์—…๋ฐ์ดํŠธ๋ฅผ ๋‚ ๋ ค์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ(ex ๋ชจ๋“  ์ง์›์˜ ์—ฐ๋ด‰ 10% ์ธ์ƒ)์— ๋ฒŒํฌ์„ฑ ์ˆ˜์ • ์ฟผ๋ฆฌ๋ผ๊ณ  ํ•œ๋‹ค. ์ˆœ์ˆ˜ JPA ์˜ˆ์ œ 20์‚ด์ด๊ฑฐ๋‚˜, 20์‚ด ์ด์ƒ์ธ ํšŒ์›์˜ ๋‚˜์ด๋ฅผ +1 MemberJpaRepository.class public int bulkAgePlus(int age) { return em.createQuery("update Member m set m.age = m.age + 1 where m.age >= :age") .setPa..

2023. 11. 14. 18:55
โ—€ PREV [1] [2] [3] NEXT โ–ถ