Hibernate-reactive: لا يمكن استرداد معرف نوع UUID باستخدام MariaDB و MySQL

تم إنشاؤها على ١٩ مارس ٢٠٢١  ·  17تعليقات  ·  مصدر: hibernate/hibernate-reactive

الكيان موجود في db ولكن find سيعود فارغًا

bug

ال 17 كومينتر

أعتقد أن هذه مشكلة في عميل Vert.x SQL ولكني بحاجة إلى التحقق من خلال اختبار

لقد وجدت المشكلة.
يحتوي الجدول على عمود تم تعريفه على أنه binary(255) ولكن تم إنشاء UUID كـ binary(16) . يعمل هذا مع اللهجة الأخرى ولكن ليس مع MySQL / MariaDB مع عميل Vert.x SQL

حسنًا ، يبدو أن هذا خطأ قمت بإصلاحه في H6 ، من خلال إصلاح طول العمود الافتراضي المكسور لـ UUIDBinaryType . قمت بتعيينه على 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 ، وفي غضون ذلك ، أرسل PR مع حالة اختبار لـ dbs الأخرى.

بصراحة ، لست متأكدًا مما إذا كان خطأ في برنامج التشغيل لأنني أشعر أنني واجهت نفس المشكلة مع JDBC.

لقد اختبرته ويبدو أنه يعمل عندما أستخدم Hibernate ORM و JDBC

حسنًا ، حسنًا ، لذلك لابد أنني أخطأت في تذكرها.

لقد أضفت حالة اختبار (UUIDAsBinaryType) لكنني لن أغلق هذه المشكلة في الوقت الحالي: https://github.com/hibernate/hibernate-reactive/pull/680

نتطلع إلى معرفة ما إذا كان فريق VErt.x سيفعل شيئًا حيال ذلك

حسنًا ، حسنًا ، لذلك لابد أنني أخطأت في تذكرها.

لا ، كنت على حق. لقد راجعت للتو ولم تعمل مع MySQL أو MariaDB مع ORM و JDBC
لقد أخطأت في مكان ما عندما راجعت في المرة الأولى.

لذا ، في النهاية ، ليست مشكلة مع السائق.

أتساءل عما إذا كان ينبغي ذكر ذلك في الوثائق قبل إغلاق هذه المشكلة.
إنه ليس بديهيًا جدًا

أتساءل عما إذا كان ينبغي ذكر ذلك في الوثائق قبل إغلاق هذه المشكلة.

يمكنك وضعه في الأسئلة الشائعة ، على ما أعتقد ، ولكن هذا حقًا سينتمي إلى وثائق ORM إذا كان في أي مكان. لا أعتقد أننا بحاجة إلى ذكر ذلك في مستندات الموارد البشرية.

أعتقد أننا يجب أن نغلق هذه المسألة.

حسنًا ، لنغلقه

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

Sanne picture Sanne  ·  12تعليقات

Thomodachi picture Thomodachi  ·  15تعليقات

markusdlugi picture markusdlugi  ·  30تعليقات

tsegismont picture tsegismont  ·  9تعليقات

gavinking picture gavinking  ·  6تعليقات