- Navios
- 19 de agosto de 2026 às 02:12 UTC
- Autor
- Kamo
- Enviar
- 25140e0
Criando um lead em um mercado hipotecário falhou com "Database tabela LEADS faz não existe. Por favor, execute KamoInitializerApp para criar o esquema." A mesa era Pronto. O erro real foi: inserir em leads (...) valores (...) retornando lead id ERRO: a coluna "lead id" não existe (SQLState 42703) A coluna de identificação dos leads é UID. lead id é o @PrimaryKeyJoinColumn do LeadClaimMortgage. Hibernate 6.2 constrói a tabela de raiz INSERT ... Cláusula de VOLTAR do ASSINADA coluna chave do SUBCLASS, então apenas a subclasse quebrou -- um chumbo simples foi Sempre bem, por isso é que os mercados hipotecários falharam. Reproduzido em isolamento; Hibernate 6.5 faz o mesmo mapeamento corretamente, mas Spring Boot 3.1.5 pinos 6.2.13 sobre os serviços que executam isto. AppMortgage (APP UID contra APLICAÇÕES) carregou o defeito idêntico, unhit. Corrigir ambos buscando o id de unique rowid() ANTES da inserção. Hibernar então não tem nada para ler de volta e emite nenhuma cláusula de VOLTA em tudo, que é correto em 6.2 e 6.5 iguais. A mesma sequência de onde a coluna default tira, então ids ficam acima de 2^53 e continuam serializando como strings; os padrões não são tocados e ainda servir SQL bruto. Nenhuma mudança de esquema -- O KamoInitializer não precisa ser executado. Renomear a coluna da chave da criança para corresponder à raiz foi a alternativa óbvia e não é viável: o ddl-auto do KamoInitializer roda antes de cada corredor de migração e adicionaria uma coluna duplicada primeiro, e a chave principal da tabela infantil assenta-se essa coluna, que YugabyteDB não pode remarcar no lugar. @SequenceGenerator on kamo unique rowid seq também é inseguro -- faria da sequência uma exportação que o ddl-auto poderia criar o START COM 1 contra um banco de dados que falta o shim, Distribuindo ids abaixo de 2^53.