์ํฐํฐ๊ฐ db์ ์์ง๋ง find
๋ null์ ๋ฐํํฉ๋๋ค.
์ด๊ฒ์ 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 ๋ฌธ์์์ ์ธ๊ธํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ ์ด ๋ฌธ์ ๋ฅผ ๋ซ์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ข์, ๋ซ์