inflearn logo
็Ÿฅ่ญ˜ๅ…ฑๆœ‰
inflearn logo

ๆœฌๅฝ“๏ผใ‚ณใƒˆใƒชใƒณใจใ‚นใƒ—ใƒชใƒณใ‚ฐใƒ–ใƒผใƒˆใงๅ›ณๆ›ธ้คจใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚’้–‹็™บใ™ใ‚‹๏ผˆJavaใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใƒชใƒ•ใ‚กใ‚ฏใ‚ฟใƒชใƒณใ‚ฐ๏ผ‰

Java + Spring Bootใงไฝœๆˆใ•ใ‚ŒใŸWebใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚’Kotlin + Spring Bootใซใƒชใƒ•ใ‚กใ‚ฏใ‚ฟใƒชใƒณใ‚ฐใ—ใ€่ฟฝๅŠ ใฎ่ฆไปถใ‚’ๅฎŸ่ฃ…ใ—ใพใ™ใ€‚ใ“ใฎ้Ž็จ‹ใง Junit5ใ€SQLใ€JPAใ€Querydsl ใ‚’ไฝฟ็”จใ™ใ‚‹ใ ใ‘ใงใชใใ€่จญ่จˆใจๅฎŸ่ฃ…ใฎ่ฆณ็‚นใ‹ใ‚‰ใ•ใพใ–ใพใชๆ–นๆณ•ใฎ้•ทๆ‰€ใจ็Ÿญๆ‰€ใ‚’ๆ‰ฑใ†ใ“ใจใซใชใ‚Šใพใ™ใ€‚

้›ฃๆ˜“ๅบฆ ๅˆ็ดš

ๅ—่ฌ›ๆœŸ้–“ ็„กๅˆถ้™

Kotlin
Kotlin
Spring Boot
Spring Boot
Java
Java
Refactoring
Refactoring
Spring
Spring
Kotlin
Kotlin
Spring Boot
Spring Boot
Java
Java
Refactoring
Refactoring
Spring
Spring

ใŠ็Ÿฅใ‚‰ใ›

1 ไปถ

  • lannstark๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ใ“ใ‚“ใซใกใฏ๏ผ KotlinใจJPAใ‚’ไฝต็”จใ™ใ‚‹้š›ใซใฏใ€ใ•ใ‚‰ใซ่€ƒๆ…ฎใ™ใ‚‹ๅ†…ๅฎนใŒใ‚ใ‚Šใพใ—ใŸใ€‚

    ใใฎๅ†…ๅฎนใฏใ€ใพใ•ใซbuild.gradleใซไปฅไธ‹ใฎใ‚ˆใ†ใชใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’่ฟฝๅŠ ใ—ใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„ใจใ„ใ†็‚นใงใ™๏ผ

     

    plugins { id "org.jetbrains.kotlin.plugin.allopen" version "1.6.21" } // plugins, dependencies์™€ ๊ฐ™์€ Level (์ฆ‰ build.gradle ์ตœ์ƒ๋‹จ) allOpen { annotation("javax.persistence.Entity") annotation("javax.persistence.MappedSuperclass") annotation("javax.persistence.Embeddable") }

     

    ใใฎ็†็”ฑใฏๆฌกใฎใจใŠใ‚Šใงใ™๏ผ

    ใ”ๅญ˜็Ÿฅใฎใ‚ˆใ†ใซใ€KotlinใฏๅŸบๆœฌ็š„ใซClassใ‚‚finalใ€้–ขๆ•ฐใ‚‚finalใงใ™๏ผ

    ใ—ใ‹ใ—ใ€JPAใ‚’ไฝฟ็”จใ™ใ‚‹ใจใใซProxy Lazy Fetchingใ‚’ๅฎŒๅ…จใซๅˆฉ็”จใ™ใ‚‹ใซใฏ๏ผˆ27่ฌ›็พฉใงLazy Fetchingใซใคใ„ใฆใฎ่ฉฑใŒใ‚ใ‚Šใพใ™๏ผ๏ผ‰ใ‚ฏใƒฉใ‚นใŒ็ถ™ๆ‰ฟๅฏ่ƒฝใงใชใ‘ใ‚Œใฐใชใ‚Šใพใ›ใ‚“๏ผ็งใŒ็ขบ่ชใ—ใŸใจใ“ใ‚ใ€@OneToManyใงใฏLazy FetchingใŒๅ‹•ไฝœใ—ใพใ™ใŒใ€@ManyToOneใซๅฏพใ—ใฆใฏLazy Fetchingใ‚ชใƒ—ใ‚ทใƒงใƒณใ‚’ๆ˜Ž็คบ็š„ใซไธŽใˆใฆใ‚‚ๅ‹•ไฝœใ—ใพใ›ใ‚“ใงใ—ใŸใ€‚

     

    ใใฎใŸใ‚ใ€all-openๆฉŸ่ƒฝใ‚’ไฝฟ็”จใ™ใ‚‹ใจใ€@Entityใ‚ฏใƒฉใ‚นใฏDecompileใ‚’่กŒใฃใŸใจใใ‚‚classใŒ้–‹ใ„ใฆใ„ใ‚‹ใ‚ˆใ†ใซๅ‡ฆ็†ใ—ใชใ‘ใ‚Œใฐใชใ‚‰ใšใ€ไธŠ่จ˜ใฎใ‚นใ‚ฏใƒชใƒ—ใƒˆใŒใใฎใ‚ˆใ†ใชๅฝนๅ‰ฒใ‚’ๆžœใŸใ™ใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚

    ใ“ใฎ่ฌ›็พฉใงใฏ@ManyToOne Lazy Fetchingใ‚’ไฝฟ็”จใ—ใฆใ„ใชใ„ใฎใงใ€ๅฏพๅฟœใ™ใ‚‹ใƒ—ใƒฉใ‚ฐใ‚คใƒณใฏ่ฌ›็พฉใง่จ€ๅŠใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใงใ—ใŸใ€‚ ๅŒใ˜ใงใ™๏ผ

     

     

    ๏ผˆๅŒใ˜ๅ†…ๅฎนใฎๆ–‡็ซ ใฏ๏ผœ14ๅผทใ€‚KotlinใจJPAใ‚’ไธ€็ท’ใซไฝฟใ†ๆ™‚ใฎ่ฉฑใฎ3้€šใ‚Š๏ผžใซใ‚‚ใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ•ใ‚Œใพใ—ใŸ๏ผ๏ผ‰

     

    0

๏ฟฅ9,642