Encontrou o problema ao executar UnionSubclassInheritanceTest
com MS SQL.
O RH usa ReactiveIdTableSupport
para gerar SQL para criar uma tabela temporária local.
O MS SQL espera que os nomes das tabelas temporárias locais comecem com um único sinal de hash:
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql#temporary -tables
Sim, é porque estamos usando ReactiveBulkIdStrategy
vez da coisa retornada por AbstractTransactSQLDialect.getDefaultMultiTableBulkIdStrategy()
. Deve ser fácil de consertar. Não se preocupe muito com isso por enquanto.
@tsegismont , deve ser o suficiente para alterar ReactiveIdTableSupport. generateIdTableName ()
seguinte forma:
<strong i="8">@Override</strong>
public String generateIdTableName(String baseName) {
return (dialect instanceof SQLServerDialect ? "#" : "ht_") + baseName;
}
@gavinking obrigado pela dica. Eu optei por algo um pouco diferente (para manter o prefixo ht_
) e também tive que mudar o método getCreateIdTableCommand
.
Consulte https://github.com/tsegismont/hibernate-reactive/commit/84caabcefb4eb1a47e7e0c2d931584038d162393
Optei por algo um pouco diferente (para manter o prefixo
ht_
)
Bem, eu acredito que se você marcar Hibernate ORM (com o qual tentamos alinhar), ele descarta o prefixo ht_
no caso do SQL Server, porque as tabelas temporárias têm seu próprio namespace.
@tsegismont podemos fechar este?
Eu compartilhei algumas mudanças em um PR para o fork do
Se essas mudanças foram escolhidas a dedo aqui, sim, o problema pode ser encerrado.
Obrigado @tsegismont , vou dar uma olhada nisso hoje
Obrigado rapazes.