Hibernate-reactive: MS SQL:ローカル一時テーブルの作成中に失敗しました

作成日 2021年05月03日  ·  9コメント  ·  ソース: hibernate/hibernate-reactive

MS SQLでUnionSubclassInheritanceTestを実行中に問題が見つかりました。

HRはReactiveIdTableSupportを使用して、ローカル一時テーブルを作成するためのSQLを生成します。

MS SQLは、ローカル一時テーブル名が単一のハッシュ記号で始まることを想定しています。
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql#temporary -tables

bug

全てのコメント9件

ええ、それは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 、私は今日これを見て

みんなありがとう。

このページは役に立ちましたか?
0 / 5 - 0 評価