Domanda

Ho aggiunto un campo stringa alla mia classe persistente di ibernazione e ho riavviato l'applicazione.Ha avviato SchemaUpgrade e ha prodotto diversi errori come questo:

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)

La colonna è stata però aggiunta al database.E tutto sembra funzionare bene.A parte quegli errori, che saltano fuori ogni volta, avvio l'applicazione.

Cosa posso fare per aiutarlo a creare questi indici?DB è MySQL, la versione di ibernazione è 3.0.

È stato utile?

Soluzione

Non sembra un problema di ibernazione.Se provi a eseguire manualmente, vedrai che avrai lo stesso problema.Guardando i manuali MySQL, vedo che "errno: 150" significa:

Se si ricrea una tabella che è stata eliminata, deve avere una definizione conforme ai vincoli di chiave esterna che fanno riferimento ad essa.Deve avere i nomi e i tipi di colonna di destra e deve avere indici sulle chiavi di riferimento, come affermato in precedenza.Se questi non sono soddisfatti, MySQL restituisce il numero di errore 1005 e fa riferimento all'errore 150 nel messaggio di errore.

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

Altri suggerimenti

Assicurati anche che TABLE_COLLATION tra le colonne referenziate e referent siano le stesse ... altrimenti ottieni anche quell'errore.

Per me il problema è stato risolto cambiando tutte le tabelle Engine in InnoDB.

Ecco come farlo manualmente:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top