Hibernate-reactive: UUID ์œ ํ˜•์˜ ID๋Š” MariaDB ๋ฐ MySQL๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2021๋…„ 03์›” 19์ผ  ยท  17์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: hibernate/hibernate-reactive

์—”ํ‹ฐํ‹ฐ๊ฐ€ db์— ์žˆ์ง€๋งŒ find ๋Š” null์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  17 ๋Œ“๊ธ€

์ด๊ฒƒ์€ Vert.x SQL ํด๋ผ์ด์–ธํŠธ์˜ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
ํ…Œ์ด๋ธ”์—๋Š” binary(255) ๋กœ ์ •์˜๋œ ์—ด์ด ์žˆ์ง€๋งŒ UUID๋Š” binary(16) ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๋ฐฉ์–ธ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ vert.x SQL ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์žˆ๋Š” MySQL/MariaDB์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ , ์˜ˆ, UUIDBinaryType ๋Œ€ํ•œ ๊นจ์ง„ ๊ธฐ๋ณธ ์—ด ๊ธธ์ด๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ H6์—์„œ ์ˆ˜์ •ํ•œ ๋ฒ„๊ทธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 16์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. H5์—์„œ ์—ด ๊ธธ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์–ด๋ฆฌ์„์€ ๊ฒƒ(255)์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

Vert.x SQL ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/eclipse-vertx/vertx-sql-client/issues/922
์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ž‘๋™ํ•œ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜๋ฉด ๋ฒ„๊ทธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์—ด ์œ ํ˜•์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

        @Column(columnDefinition = "binary(16)")
        UUID id;

์†”์งํžˆ JDBC์—์„œ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„๊ทธ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ œ๊ฐ€ ์ž˜๋ชป ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์„์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

๋ญ”๊ฐ€ ๋™๊ธฐ๊ฐ€ H6์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์—ด ์œ ํ˜•์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ๋ฌผ๋ก ์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•์„ ์‚ฌ์šฉํ•  ๋•Œ UUIDType์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

H5์—์„œ๋Š” ์œ ํ˜•์ด ์—ด ๊ธธ์ด๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

H6์—์„œ ์ด๋ฅผ ์œ„ํ•œ ์ „์ฒด ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  IIRC๋Š” ๊ทธ๋ ‡๊ฒŒ ์‚ฌ์†Œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์†”์งํžˆ JDBC์—์„œ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„๊ทธ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํ…Œ์ŠคํŠธํ–ˆ๊ณ  Hibernate ORM๊ณผ JDBC๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

H6์—์„œ ์ด๋ฅผ ์œ„ํ•œ ์ „์ฒด ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  IIRC๋Š” ๊ทธ๋ ‡๊ฒŒ ์‚ฌ์†Œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ๋กœ์„œ๋Š” ์ด์— ๋Œ€ํ•ด ๋” ์ด์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Vert.x SQL ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๊ทธ๋“ค์ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ๋ณด๊ณ  ๊ทธ ๋™์•ˆ ๋‹ค๋ฅธ db์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์™€ ํ•จ๊ป˜ PR์„ ๋ณด๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์†”์งํžˆ JDBC์—์„œ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„๊ทธ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํ…Œ์ŠคํŠธํ–ˆ๊ณ  Hibernate ORM๊ณผ JDBC๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

์•Œ์•˜์–ด, ์•Œ์•˜์–ด, ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ์ž˜๋ชป ๊ธฐ์–ตํ–ˆ์–ด์•ผ ํ–ˆ์–ด.

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค(UUIDAsBinaryType)๋ฅผ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ ์ง€๊ธˆ์€ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. https://github.com/hibernate/hibernate-reactive/pull/680

VERt.x ํŒ€์ด ์ด์— ๋Œ€ํ•ด ์กฐ์น˜๋ฅผ ์ทจํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด

์•Œ์•˜์–ด, ์•Œ์•˜์–ด, ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ์ž˜๋ชป ๊ธฐ์–ตํ–ˆ์–ด์•ผ ํ–ˆ์–ด.

์•„๋‹ˆ, ๋‹น์‹ ์ด ์˜ณ์•˜๋‹ค. ๋ฐฉ๊ธˆ ๋‘ ๋ฒˆ ํ™•์ธํ–ˆ๋Š”๋ฐ ORM ๋ฐ JDBC๊ฐ€ ์žˆ๋Š” MySQL์ด๋‚˜ MariaDB์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ฒ˜์Œ ํ™•์ธํ–ˆ์„ ๋•Œ ์–ด๋”˜๊ฐ€์—์„œ ์—‰๋ง์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฒฐ๊ตญ ์šด์ „์ž์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ๊ธฐ ์ „์— ๋ฌธ์„œ์—์„œ ์ด๋ฅผ ์–ธ๊ธ‰ํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
๋ณ„๋กœ ์ง๊ด€์ ์ด์ง€ ์•Š๋‹ค

์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ๊ธฐ ์ „์— ๋ฌธ์„œ์—์„œ ์ด๋ฅผ ์–ธ๊ธ‰ํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

FAQ์— ๋„ฃ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์ด๊ฒƒ์€ ORM ๋ฌธ์„œ์— ์†ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. HR ๋ฌธ์„œ์—์„œ ์–ธ๊ธ‰ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ข‹์•„, ๋‹ซ์ž

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰