使用 MS SQL 运行UnionSubclassInheritanceTest
时发现问题。
HR 使用ReactiveIdTableSupport
生成 SQL 来创建本地临时表。
MS SQL 期望本地临时表名以单个哈希符号开头:
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql#temporary -tables
是的,这是因为我们使用的是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 ,我今天看看这个
谢谢你们。