Pregunta

Agregué un campo de cadena a mi clase persistente de hibernación y reinicié la aplicación.Inició SchemaUpgrade y dio como resultado varios errores 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)

Sin embargo, la columna se agregó a la base de datos.Y todo parece estar funcionando bien.Excepto por esos errores, que aparecen cada vez que inicio la aplicación.

¿Qué puedo hacer para ayudarlo a crear esos índices?DB es MySQL, la versión de hibernación es 3.0.

¿Fue útil?

Solución

No parece un problema de Hibernación.Si intenta ejecutar manualmente, verá que obtendrá el mismo problema.Al mirar los manuales de MySQL, veo que "errno: 150" significa:

Si vuelve a crear una tabla que se eliminó, debe tener una definición que se ajuste a las restricciones de clave externa que la hacen referencia.Debe tener los tipos y nombres de columna correctos, y debe tener índices en las claves referenciadas, como se indicó anteriormente.Si no se cumplen, MySQL devuelve el número de error 1005 y se refiere al error 150 en el mensaje de error.

http://dev.mysql.com / doc / refman / 5.5 / es / innodb-Foreign-key-constraints.html

Otros consejos

También asegúrese de que TABLE_COLLATION entre las columnas referenciadas y de referencia sean las mismas ... de lo contrario, también obtendrá ese error.

Para mí, el problema se resolvió cambiando todas las tablas Engine a InnoDB.

A continuación se explica cómo hacerlo manualmente:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top