MS SQLでUnionSubclassInheritanceTest
を実行中に問題が見つかりました。
HRはReactiveIdTableSupport
を使用して、ローカル一時テーブルを作成するためのSQLを生成します。
MS SQLは、ローカル一時テーブル名が単一のハッシュ記号で始まることを想定しています。
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql#temporary -tables
ええ、それはAbstractTransactSQLDialect.getDefaultMultiTableBulkIdStrategy()
によって返されるものの代わりにReactiveBulkIdStrategy
を使用しているからです。 修正するのは簡単なはずです。 今のところ、これについてはあまり心配しないでください。
@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(調整しようとしている)をチェックすると、SQL Serverの場合、一時テーブルに独自の名前空間があるため、 ht_
プレフィックスが削除されると思います。
@gavinking :+1: https :
@tsegismontこれを閉じることはできますか?
私はPRのいくつかの変更を@DavideDのフォークに共有しました。
これらの変更がここで厳選されている場合は、はい、問題を解決できます。
ありがとう@tsegismont 、私は今日これを見て
みんなありがとう。