์ค์ jOOQ! Type Safe SQL with Java
jOOQ๋ฅผ ํตํด Type Safeํ SQL์ ๊ฐ๋ ฅํจ์ ๊ฒฝํํด๋ณด์ธ์!
์๊ฐ์ 382๋ช
๋์ด๋ ์ค๊ธ์ด์
์๊ฐ๊ธฐํ ๋ฌด์ ํ

๋ค๋ฅธ ์๊ฐ์๋ค์ด ์์ฃผ ๋ฌผ์ด๋ณด๋ ์ง๋ฌธ์ด ๊ถ๊ธํ์ ๊ฐ์?
- ๋ฏธํด๊ฒฐ
์๋ ํ์ธ์ FetchGroups์์ Multiset๋ฐฉ์ ์ฌ์ฉํ๋ฉด ์ด๋ค๊ฐ ํด์ ๋ฌผ์ด๋ด ๋๋ค
์๋ ํ์ธ์ ๊ณต๋ถํ๋ค๊ฐ ๋ณด๋FetchGroups๋ฐฉ์์ผ๋ก ํ์๋ Map์ผ๋ก ๋ฐํ๋๊ณ DTO๋ก ๋ณํํด์ผํ๋ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋๋ฐ์<p style="text-al
javasqlspring-bootjooqdslJaeWon Kim
ใป
5๋ฌ ์
0
60
1
- ํด๊ฒฐ
monosoul jooq plugin-docker registry ๋ณ๊ฒฝ
monosoul - jooq ํ๋ฌ๊ทธ์ธ ์ ์ฉ ๊ฐ์์ฒ๋ผ testcontainers๋ฅผ ๋์ ddl์ ์คํํ์ฌ database๋ฅผ ์์ฑ ํ jooq๊ฐ ์์ฑ๋ database๋ฅผ ๋ฐํ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋๋ก ์ค์ ํ๊ณ ์ถ์ต๋๋ค.
jooqdockertestcontainersanonymous
ใป
5๋ฌ ์
1
101
3
- ํด๊ฒฐ
์ง๋ฌธ) jOOQ ํ๋ก์ ํธ์์ CI/CD ์๋ํ ๋ฌธ์
์๋ ํ์ธ์, ๊ฐ์ฌ๋.๊ฐ์ ์ ๋ค์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. jOOQ๋ฅผ ์ฌ์ฉํ ํ๋ก์ ํธ์์
javasqlspring-bootjooqdslKHLIM
ใป
8๋ฌ ์
1
174
3
- ํด๊ฒฐ
generate dao ๋ฅผ ํตํ ์ฝ์ ์ pk auto-increment ๊ฐ ์ ์ฉ๋์ง ์์ต๋๋ค
Kotlin, Groovy gradle, PostrgreSQL ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ ํธ ์ธํ ์ด ๋์ด ์์ต๋๋ค <code class="langua
sqlspring-bootjooqdslkotlin์ด๊ฐํ
ใป
9๋ฌ ์
1
109
1
- ํด๊ฒฐ
jooq+flyway์์ ์ง๋ฌธ๋๋ฆฝ๋๋ค
๋์ปค ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ์ฌ์ ์คํ ์ํค๋๊ฑธ๋ก ์งํํ์ จ๋๋ฐ ์ ๋ ๋์ปค๋ฅผ ๋ฐ์คํฌํ์ด ์๋๋ผ olima๋ก ์คํ์ํค๊ณ ์์ด์ ํ๊ฒฝ๋ณ์ ์๋ฌ๊ฐ ๋์ค๋๋ผ
javasqlspring-bootjooqdslJaeWon Kim
ใป
0
249
2
- ํด๊ฒฐ
์๋ ํ์ธ์ ์์ฑ์ผ,์์ฑ์,์์ ์ผ,์์ ์๋ ์๋์ผ๋ก ํด์ฃผ๋ ๊ธฐ๋ฅ์ด ์์๊น์?
Jpa ๋ณด๋ฉด Auditing ๊ธฐ๋ฅ์ผ๋ก ์๋์ผ๋ก ๋ฃ์ด์ฃผ๋ ๊ธฐ๋ฅ์ด ์๋๋ฐ jooq์์๋ ๋น์ทํ๊ฒ ์์๊ฑฐ ๊ฐ์๋ฐ recode listener ์ฌ์ฉํด์ ํด์ผํ๋๊ฑธ๊น์? <p style="text-a
javasqlspring-bootjooqdslJaeWon Kim
ใป
0
206
2
- ํด๊ฒฐ
[์ฌ๋ก] Maven์์ TestContainers ํ๋ฌ๊ทธ์ธ ์ ์ฉ์ ์์ธ๋ฐ์
์์ผ๋ก ๊ณผ๊ฑฐ์ ๊ฒช์๋ ์ด์๋ค๋ ์๊ฐ๋ ๋๋ง๋ค ์ฌ๊ธฐ์ ๊ธฐ๋กํ๋๋ก ํ๊ฒ ์ต๋๋ค. Maven์์ Test
javasqlspring-bootjooqdsl์ค๋๋ฏผ
ใป
0
143
0
- ํด๊ฒฐ
Routines ๊ด๋ จ ์ง๋ฌธ
์๋ ํ์ธ์!์ด๋ฒ์ jooq๋ฅผ ๋์ ํ๊ฒ ๋์ด ๊ฐ์๋ฅผ ๋ณด๋ฉฐ ์ฒ์ฒํ ๋ฐ๋ผํด๋ณด๊ณ ์์ต๋๋ค.ํ์ฌ Flywa
javasqlspring-bootjooqdslIannnn
ใป
1
159
2
- ํด๊ฒฐ
JOOQ ํ๊ฒฝ์ค์ ์ค์ db ํจ์ค์๋ ๊ด๋ จ ์ง๋ฌธ์ ๋๋ค.
๊ฐ์์์๋ ๊ทธ๋ ๊ณ ์ค์ ๋ก ์ค์ต์ ํด๋ดค์ ๋๋ ๊ทธ๋ ๊ณ (์ ๋ db๋ฅผ ๋ก์ปฌ๋ก ์คํํ์ต๋๋ค!) gradle ํ์ผ์ db rootํจ์ค์๋๋ฅผ ๊ทธ๋๋ก ์ ๋ ฅํด์ผ ํ๋ ๊ฒ ๊ฐ์๋ฐ.. :) ์ด ๋ถ๋ถ์ ๋ํด์ ์ดํ์ ํฌ๊ฒ ๋ฌธ์ ๊ฐ ์๋๊ฑธ๊น์
javasqlspring-bootjooqdsl์์ค์ฉ(wamba)
ใป
1
173
1
- ํด๊ฒฐ
Sakila DB ๋์ปค ์ปดํฌ์ฆ ๊ตฌ์ฑ ์ ํ
MySQL์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ์ฅ ๊ฒฝ๋ก๋ /var/lib/mysql์ด๋ฏ๋ก, ์ง์ ๋ง๋ ๋ณผ๋ฅจ์ /data ๊ฒฝ๋ก๊ฐ ์๋ /var/lib/mysql์ ์ง์ ํด์ฃผ์ ์ผ ํฉ๋๋ค.<
javasqlspring-bootjooqdslTaeHwan Kim
ใป
1
152
1
- ํด๊ฒฐ
DB ๋ฒค๋๋ณ ๋ด์ฅํจ์์ ๋ํ ๋ฐฉ์ธ ์ง์ ๋ฃ๊ณ ์ง๋ฌธ๋๋ ค์
postgresql ํ ๋๋ dsl์ ์ฌ์ฉ์ํ๋๋ฐ ๊ทธ๋ฐ ์ด์ ๊ฐ์์๊น์?mysql์์๋ MYSQLDSL.GROUPCONNECAT ์ด๋ ๊ฒํ๋๋ฐPOSTGRESQL์์๋ dsl์ ์ฌ์ฉ์ํ๋๊ฒ๊ฐ์์์๊ทธ๋ฌ๋์ง ๊ถ๊ธํฉ๋๋ค
javasqlspring-bootjooqdsl์ด๊ฒฝ์ฉ
ใป
1
176
1
- ํด๊ฒฐ
์ธํ ๋ฆฌ์ ์ด ํ ๋ง ์ง๋ฌธ
ํน์ ํ ๋ง ์ด๋ค๊ฑฐ ์ฐ์๋์...๋๋ฌด์ด๋ป์..๊ฐ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค jooq ํธ๊ธฐ์ฌ์ด ๋ง์์๋๋ฐ. ์๊ฐ์๋์์๊ฒ ๋์์ฃผ์ ์ ๊ฐ์ฌํด์
javasqlspring-bootjooqdslJacob Lee
ใป
2
425
3
- ํด๊ฒฐ
kotlin jOOQ , ์ปดํ์ผ์ ํ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ
์๋ ํ์ธ์๋น์ทํ ์ด์ ๋ก queryDSL ์์ ๋ถํธํจ์ ๊ฐ์ง๊ณ ์์ด jOOQ ์ ๊ด์ฌ์ด ์๊ฒผ์ต๋๋ค.๋ง์นจ ์ด๋ ๊ฒ ์ข์ ๊ฐ์ ๋ง๋ค์ด์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค.๋ค๋ฆ์ด ์๋๋ผ kotlin ์ ์ฃผ๋ก ์ฌ์ฉํด์ kotlin ์ผ๋ก jOOQ ์ฌ์ฉ์
javasqlspring-bootjooqdsl์ฝํ๋ฆฐ์๋ฐ
ใป
0
523
2
- ํด๊ฒฐ
pojo ์ setter ๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ์์๊น์?
์๋ ํ์ธ์ ๊ฐ์ฌ๋. jooq ๊ฐ์ ์ ๋ฃ๊ณ ์์ต๋๋ค. ํ์ฌ update ๋ถ๋ถ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ์ค์ตํด๋ณด๊ณ ์๋๋ฐ Actor ์ setter ๋ฉ์๋๋ค์ด ์์ด์ dao ๋ฅผ ํตํ update๋ฅผ ํ๋๋ฐ ๋ค์ ์ด๋ ค์์ด ์๊ฒผ์ต๋๋ค.<p
javasqlspring-bootjooqdsl์ฐฝ๋
ใป
1
189
1
- ํด๊ฒฐ
FilmWithActor๋ก fetch ์ select์ ์์ฑ์์ ๋งค๊ฐ๋ณ์ ์์๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ map์ด ์ ์์ ์ผ๋ก ์ด๋ฃจ์ด ์ง์ง์๋ ์ผ์ด์ค
์๋ ํ์ธ์ ๊ฐ์๋ฅผ ์ฌ๋ฐ๊ฒ ์๊ฐํ๋ ๋์ค ๊ถ๊ธ์ฆ์ด ์๊ธฐ์ด ์ง๋ฌธ ๋๋ฆฝ๋๋ค. ์ง๋ฌธselect ์ row ๋งค๊ฐ๋ณ์์ ์์์ FilmWithActor์ ์์ฑ์ ๋งค๊ฐ๋ณ์์ ์์๊ฐ
javasqlspring-bootjooqdslํ๋
ใป
1
228
1
- ํด๊ฒฐ
from์ subquery table filed nullable ์ฒ๋ฆฌ
์๋ ํ์ธ์. ๊ฐ์ ์ ๋ฃ๊ณ ์์ต๋๋ค.๋ค๋ฆ์ด ์๋๋ผ subquery ์ค์ต ์ค nullable method ์ฒ๋ฆฌ๊ฐ ์๋์ด ์ง๋ฌธ ๋๋ฆฝ๋๋ค. asTable() method ์ฌ์ฉํ์ฌ Table ์ธ์คํด์ค
javasqlspring-bootjooqdslfreesens
ใป
1
221
1
- ํด๊ฒฐ
kotlin mapping error
์๋ ํ์ธ์! ๊ฐ์ ์ ๋ค์์ต๋๋ค ใ ใ ์๋ฐ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ํด์ฃผ์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ฝํ๋ฆฐ์ผ๋ก ์ ํํ์ฌ ๋ค์๊ธ ํ์ตํ๊ณ ์์ต๋๋ค.๊ทธ๋ฌ๋ ๋์ค ๋งคํ ๊ณผ์ ์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๋ฐ๊ฒฌํ์๋๋ฐ ์ด์ ๊ด๋ จํ์ฌ ๋์์ ์์ฒญ๋๋ฆฌ๊ณ ์ ํฉ๋๋ค.<pre
javasqlspring-bootjooqdslclllickme
ใป
0
517
4
- ํด๊ฒฐ
db column์ not null๋ก ๋์ด ์๋๋ฐ kotlin์์ pojo๊ฐ ๋ค nullable๋ก ์์ฑ๋์.
kotlin์ ์ฌ์ฉํ๊ณ ์์ด์, kotlin with jooq๋ก ํ๋๋ฐ pojo์ ์์ฑ๋ค์ด ๋ชจ๋ ?์ด ๋ถ์ด์ nullable์ด ๋์์ต๋๋ค. ์ค์์ not null์์๋ ๋ถ๊ตฌํ๊ณ ์. ์ด๋ด ๊ฒฝ์ฐ ๋ฐ๋ก data class๋ฅผ ๋ง๋ค์ด์ผ ํ ๊น์? ์๋๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์๊น์
javasqlspring-bootjooqdsl๋ฒํฐํ๋ผ์๊ต์ก์ฉ
ใป
0
514
1
- ํด๊ฒฐ
ํ๋์ ๋๋น๋ฅผ ์ฌ๋ฌ ๋ฐฑ์๋ ์๋ฒ๊ฐ ํ์๋ก ํ ๋, flyway ๊ด๋ฆฌ
์ ์ ๋ฐ ์๊ตฌ์ฌํญ DB ํ๋์ ์ข ๋ฅ๊ฐ ๋ค๋ฅธ ์๋ฒ๊ฐ 4๊ฐ๊ฐ ๋ถ์ด์์ต๋๋ค. flyway๋ฅผ ํตํด์ DB version control์ ํ๊ณ ์ถ์ต๋๋ค. node์ nestjs์ typeorm์ ์ฌ์ฉํ ๋๋ CICD ๋จ๊ณ์์ typ
javasqlspring-bootjooqdsl๋ฒํฐํ๋ผ์๊ต์ก์ฉ
ใป
1
889
5
- ํด๊ฒฐ
dslContext ์์ฑ ์ fetchGroups ์ด๋ ๊ฒ ์์ฑํด๋ ๋ ๊น์?
fun findActorFilmography(searchOption: ActorFilmographySearchOption): List { val actorL
javasqlspring-bootjooqdslchhong
ใป
2
638
6






