Hibernate-reactive: MS SQL: فشل عند إنشاء جدول محلي مؤقت

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

تم العثور على المشكلة أثناء تشغيل UnionSubclassInheritanceTest مع MS SQL.

يستخدم قسم الموارد البشرية ReactiveIdTableSupport لإنشاء SQL لإنشاء جدول مؤقت محلي.

تتوقع MS SQL أن تبدأ أسماء الجداول المؤقتة المحلية بعلامة تجزئة واحدة:
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql#tporary -tables

bug

ال 9 كومينتر

نعم ، هذا لأننا نستخدم ReactiveBulkIdStrategy بدلاً من الشيء الذي تم إرجاعه بواسطة AbstractTransactSQLDialect.getDefaultMultiTableBulkIdStrategy() . يجب أن تكون سهلة بما يكفي لإصلاحها. لا تقلق كثيرًا بشأن هذا في الوقت الحالي.

tsegismont يجب أن يكون كافيًا لتغيير ReactiveIdTableSupport. generateIdTableName () النحو التالي:

    <strong i="8">@Override</strong>
    public String generateIdTableName(String baseName) {
        return (dialect instanceof SQLServerDialect ?  "#" : "ht_") + baseName;
    }

gavinking شكرا ht_ ) واضطررت أيضًا إلى تغيير طريقة getCreateIdTableCommand .

انظر https://github.com/tsegismont/hibernate-reactive/commit/84caabcefb4eb1a47e7e0c2d931584038d162393

ذهبت بشيء مختلف قليلاً (للاحتفاظ بالبادئة ht_ )

حسنًا ، أعتقد أنه إذا قمت بفحص Hibernate ORM (الذي نحاول التوافق معه) ، فإنه يسقط البادئة ht_ في حالة SQL Server ، لأن الجداول المؤقتة لها مساحة اسم خاصة بها.

tsegismont هل يمكننا إغلاق هذا؟

لقد شاركت بعض التغييرات في العلاقات العامة على مفترق DavideD .

إذا تم اختيار هذه التغييرات هنا ، فبإمكانك إغلاق المشكلة.

شكرًا tsegismont ،

شكرا يا شباب.

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