Habe das Problem beim Ausführen von UnionSubclassInheritanceTest
mit MS SQL gefunden.
HR verwendet ReactiveIdTableSupport
, um SQL zum Erstellen einer lokalen temporären Tabelle zu generieren.
MS SQL erwartet, dass lokale temporäre Tabellennamen mit einem einzelnen Hash-Zeichen beginnen:
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql#temporary -tables
Ja, es liegt daran, dass wir ReactiveBulkIdStrategy
anstelle des von AbstractTransactSQLDialect.getDefaultMultiTableBulkIdStrategy()
Dings verwenden. Es sollte leicht zu beheben sein. Machen Sie sich jetzt keine allzu großen Sorgen.
@tsegismont es sollte ausreichen, ReactiveIdTableSupport. generateIdTableName ()
wie folgt zu ändern:
<strong i="8">@Override</strong>
public String generateIdTableName(String baseName) {
return (dialect instanceof SQLServerDialect ? "#" : "ht_") + baseName;
}
@gavinking danke für den Tipp. Ich ging mit etwas etwas anderem (um das ht_
Präfix beizubehalten) und musste auch die getCreateIdTableCommand
Methode ändern.
Siehe https://github.com/tsegismont/hibernate-reactive/commit/84caabcefb4eb1a47e7e0c2d931584038d162393
Ich habe etwas anderes gewählt (um das Präfix
ht_
beizubehalten)
Nun, ich glaube, wenn Sie Hibernate ORM überprüfen (an dem wir versuchen auszurichten), wird das Präfix ht_
im Fall von SQL Server gelöscht, da die temporären Tabellen ihren eigenen Namespace haben.
@tsegismont können wir dieses schließen?
Ich habe einige Änderungen in einer PR an @DavideDs Fork geteilt.
Wenn diese Änderungen hier ausgewählt wurden, dann kann das Problem geschlossen werden.
Danke @tsegismont , das werde ich mir heute anschauen
Danke Leute.