Pergunta

Eu adicionei um campo de string à minha classe persistente de hibernação e reiniciei o aplicativo.Ele iniciou o SchemaUpgrade e resultou em vários erros como este:

2011-02-03 13:04:06,522 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - Unsuccessful: alter table table_name add index FKCD10932052C35B33 (previewExample_id), add constraint FKCD10932052C35B33 foreign key (previewExample_id) references preview (id)
2011-02-03 13:04:06,522 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - Can't create table 'dbName.#sql-59c_1cc' (errno: 150)

A coluna foi adicionada ao banco de dados.E tudo parece estar funcionando bem.Exceto por aqueles erros, que aparecem toda vez, eu inicio o aplicativo.

O que posso fazer para ajudá-lo a criar esses índices?DB é MySQL, a versão de hibernação é 3.0.

Foi útil?

Solução

Não parece um problema de Hibernate.Se você tentar executar manualmente, verá que terá o mesmo problema.Olhando os manuais do MySQL, vejo que "errno: 150" significa:

Se você recriar uma tabela que foi eliminada, ela deve ter uma definição que esteja de acordo com as restrições de chave estrangeira que a fazem referência.Ele deve ter os nomes e tipos de coluna corretos e deve ter índices nas chaves referenciadas, conforme declarado anteriormente.Se eles não forem satisfeitos, o MySQL retornará o erro número 1005 e fará referência ao erro 150 na mensagem de erro.

http://dev.mysql.com / doc / refman / 5.5 / en / innodb-foreign-key-constraints.html

Outras dicas

Certifique-se também de que TABLE_COLLATION entre as colunas referenciadas e referentes são as mesmas ... caso contrário, você também obterá esse erro.

Para mim, o problema foi resolvido alterando todas as tabelas Engine para InnoDB.

Veja como fazer isso manualmente:

https://stackoverflow.com/a/9492183/1988704

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top