Domanda

Sto provando a persistere un oggetto nel database utilizzando Cayenne Entity Manager. E purtroppo ottengo il seguente errore:

org.apache.cayenne.CayenneRuntimeException: [v.3.0 Apr 26 2010 09:59:17] Commit Exception

Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'myDatabase.auto_pk_support' doesn't exist

Qualsiasi idea di come potrei risolvere questo problema? Grazie.

È stato utile?

Soluzione

Nel caso del vostro errore, mi sembra che si sceglie da Caienna Modeler del "default" "strategia di generazione di PK" (Clicca sul vostro DB entités per vedere il comobox con questa opzione). Ciò significa che Cayenne si aspetta un tavolo "auto_pk_support" popolato di essere presenti nello schema (in modo da essere in grado di generare e tenere traccia delle chiavi primarie).

Cayenne Modeler può generare questo contenuto tavolo + per voi: seleziona dal menu Strumenti la "Genera DB Schema", selezionare la connessione a destra, e dalla finestra di dialogo successiva selezionare solo la casella di controllo "Crea PK Support": - si vedrà il SQL richiesto per generare esso - è possibile copiare e incollare in te strumento di SQL preferito, o lasciare che Caienna Modeler eseguirlo

.

Dal momento che si sta utilizzando MySQL hai ovviamente altre opzioni di generazione PK troppo (quanto sopra è quello classico / default e funziona su qualsiasi database - ma richiede un tavolo extra).

Suggerisco di consultazione del Cayenne Modeler documentazione , o meglio il intera documentazione di cayenna (dal momento che è molto buono) come tutte le voci di cui sopra sono molto ben spiegati lì.

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