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

所有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(我们尝试与之保持一致),它会在 SQL Server 的情况下删除ht_前缀,因为临时表有自己的命名空间。

@tsegismont我们可以关闭这个吗?

我在PR 中分享了对@DavideD的 fork 的一些更改。

如果这些更改在这里被挑选出来,那么是的,这个问题可以被关闭。

谢谢@tsegismont ,我今天看看这个

谢谢你们。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

arifpratama398 picture arifpratama398  ·  10评论

akoufa picture akoufa  ·  30评论

Xset-s picture Xset-s  ·  3评论

DavideD picture DavideD  ·  37评论

DavideD picture DavideD  ·  17评论