Hibernate-reactive: タイプUUIDのIDはMariaDBとMySQLでは取得できません

作成日 2021年03月19日  ·  17コメント  ·  ソース: hibernate/hibernate-reactive

エンティティはデータベースにありますが、 findはnullを返します

bug

全てのコメント17件

これはVert.xSQLクライアントの問題だと思いますが、テストで確認する必要があります

私は問題を見つけました。
テーブルにはbinary(255)として定義された列がありますが、UUIDはbinary(16)として作成されます。 これは他の方言では機能しますが、vert.xSQLクライアントを使用するMySQL / MariaDBでは機能しません

うーん、ええ、これは私がH6で修正したバグで、 UUIDBinaryTypeの壊れたデフォルトの列の長さを修正したようです。 デフォルトでは16に設定しています。 H5では、列の長さはデフォルトで愚かなものになります(明らかに255)。

Vert.x SQLクライアントの問題を作成しました: https
これは、他のすべてのデータベースで機能することを考えると、バグのようです。

現時点での回避策は、列のタイプを定義することだと思います。

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

正直なところ、JDBCで同じ問題が発生したように感じるので、それがドライバーのバグかどうかはわかりません。

しかし、私は覚えていないかもしれません。

何かが私を動機づけて、H6の問題を修正しました。

現時点での回避策は、列のタイプを定義することだと思います

はい、もちろんです。

たぶん、リアクティブを使用するときにUUIDTypeを変更できます

いいえ。H5では、タイプが列の長さを判別できないためです。

そのためのインフラストラクチャ全体をH6で構築する必要がありました。 そしてIIRCはそれほど些細なことではありませんでした。

正直なところ、JDBCで同じ問題が発生したように感じるので、それがドライバーのバグかどうかはわかりません。

テストしましたが、HibernateORMとJDBCを使用すると機能するようです

そのためのインフラストラクチャ全体をH6で構築する必要がありました。 そしてIIRCはそれほど些細なことではありませんでした。

現時点では、これについて私にできることはあまりないようです。
私は彼らがVert.xSQLクライアント側でどう思うかを見るのを待ち、その間、他のデータベースのテストケースを含むPRを送信します。

正直なところ、JDBCで同じ問題が発生したように感じるので、それがドライバーのバグかどうかはわかりません。

テストしましたが、HibernateORMとJDBCを使用すると機能するようです

OK、結構です、それで私は覚えていなかったに違いありません。

テストケース(UUIDAsBinaryType)を追加しましたが、今のところこの問題を解決するつもりはありません: https

VErt.xチームがそれについて何かをするつもりかどうかを見るために待っています

OK、結構です、それで私は覚えていなかったに違いありません。

いいえ、あなたは正しかった。 ダブルチェックしたところ、MySQLでもORMとJDBCを使用したMariaDBでも機能しません
初めてチェックしたとき、どこかでめちゃくちゃになりました。

したがって、最終的にはドライバーの問題ではありません。

この問題を閉じる前に、ドキュメントでこれについて言及する必要があるかどうか疑問に思います。
あまり直感的ではありません

この問題を閉じる前に、ドキュメントでこれについて言及する必要があるかどうか疑問に思います。

FAQに入れることもできますが、実際には、これはORMドキュメントに含まれています。 HRドキュメントで言及する必要はないと思います。

この問題を解決する必要があると思います。

OK、閉じましょう

このページは役に立ちましたか?
0 / 5 - 0 評価