Menemukan masalah saat menjalankan UnionSubclassInheritanceTest
dengan MS SQL.
HR menggunakan ReactiveIdTableSupport
untuk menghasilkan SQL untuk membuat tabel sementara lokal.
MS SQL mengharapkan nama tabel sementara lokal dimulai dengan tanda hash tunggal:
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql#temporary -tables
Ya itu karena kami menggunakan ReactiveBulkIdStrategy
alih-alih yang dikembalikan oleh AbstractTransactSQLDialect.getDefaultMultiTableBulkIdStrategy()
. Seharusnya cukup mudah untuk diperbaiki. Jangan terlalu khawatir tentang ini untuk saat ini.
@tsegismont itu harus cukup untuk mengubah ReactiveIdTableSupport. generateIdTableName ()
sebagai berikut:
<strong i="8">@Override</strong>
public String generateIdTableName(String baseName) {
return (dialect instanceof SQLServerDialect ? "#" : "ht_") + baseName;
}
@gavinking terima kasih atas tipnya. Saya menggunakan sesuatu yang sedikit berbeda (untuk mempertahankan awalan ht_
) dan juga harus mengubah metode getCreateIdTableCommand
.
Lihat https://github.com/tsegismont/hibernate-reactive/commit/84caabcefb4eb1a47e7e0c2d931584038d162393
Saya menggunakan sesuatu yang sedikit berbeda (untuk mempertahankan awalan
ht_
)
Yah saya percaya jika Anda memeriksa Hibernate ORM (yang kami coba selaraskan), itu menjatuhkan awalan ht_
dalam kasus SQL Server, karena tabel sementara memiliki namespace mereka sendiri.
@tsegismont bisakah kita tutup yang ini?
Saya membagikan beberapa perubahan dalam PR ke garpu @DavideD .
Jika perubahan ini telah dipilih di sini maka ya masalahnya bisa ditutup.
Terima kasih @tsegismont , saya akan melihatnya hari ini
Terima kasih teman-teman.