entité strong> p> Info: [AVERTISSEMENT EL]: 2012-01-06
18: 45: 46.77 - Clientsession (17472935) - Exception [Eclipselink-4002]
(Services de persistance Eclipse - 2.3.0.v20110604-R9504):
org.eclipse.persistence.Exception.Exception.DataBaseException interne
Exception: com.mysql.jdbc.Exception.MySQLSysSntaxERrorException: table
'Mazedb.Suence' n'existe pas de code d'erreur: 1146 Call: Séquence de mise à jour
SET SEQ_COUNT = SEQ_COUNT +? Où seq_name =? BIND => [2
Paramètres liés] Query: DataModifyQuery (nom = "Séquence" SQL = "Mise à jour
SET SEQUENCE SEQ_COUNT = SEQ_COUNT +? Où seq_name =? ") P>
Info: Erreur: Exception interne:
com.mysql.jdbc.Exception.MySQLSYNTAXERRorException: table
'Mazedb.Suence' n'existe pas de code d'erreur: 1146 Call: Séquence de mise à jour
SET SEQ_COUNT = SEQ_COUNT +? Où seq_name =? BIND => [2
Paramètres liés] Query: DataModifyQuery (nom = "Séquence" SQL = "Mise à jour
SET SEQUENCE SEQ_COUNT = SEQ_COUNT +? Où seq_name =? ") P>
BlockQuote> J'ai essayé l'inverse, avoir deux entités différentes fusionnées par @primarykeyjoincolumn, mais j'ai eu la même erreur. P> p>
5 Réponses :
Si Eclipselink essaie d'accéder à ce tableau, cela signifie que c'est censé être là. Si vous ne voulez pas utiliser cette stratégie, choisissez un autre. p> GenerationType.Auto Code> signifie que Eclipselink choisit le type de génération le plus approprié pour votre base de données (MySQL). Dans ce cas, le choix consiste à utiliser un générateur de table, qui a besoin d'une table. Voir http://wiki.eclipse.org/eclipselink/serguide/jpa/basic_jpa_développement/entities / IDS / GénérationValue . P>
Le lien donné est mort.
Je devais créer la table afin de sauver les autres moments de googling Voici le SQL Créer une séquence de table (SEQ_NAME VARCHAR (50) non NULL, SEQ_COUNT Decimal (15), clé primaire (SEQ_NAME)) CODE>
Je n'avais jamais eu cette erreur avant de faire ce genre de chose cent fois. J'ai trouvé que cette erreur était parce que j'ai eu une propriété hibernate pour créer des tables dans le C'était: p> persistence.xml code> mais utilisait Eclipselink:
<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
<!-- or just value="create-tables" -->
Travaillé pour moi, bien que je n'ai pas eu la première de la propriété définie dans persistance.xml. L'ajout de la propriété suggère a pris l'exception.
Dans le fichier de configuration, org.hibernate.dialect.oracle10gdialect code> est oublié. En effet,
org.hibernate.dialect.mysqldialect code> devrait être. P>
@generatedValue (stratégie = générationtype.auto) code> ressemble à une valeur par défaut fournie par IDE sur la création de l'entité. Toutefois, si vous utilisez
org.eclipse.persistence.jpa.persistenceprovider code>, étant donné la façon dont il traite cette annotation (menant à l'exception étant lancée),
La solution la plus simple serait d'utiliser
@generatedValue (stratégie = générationtype.entity) code> à la place. p>
Cette exception peut se produire même si vous utilisez de la Eclipselink Wiki : P> J'ai changé le serveur de base de données et le client de MySQL vers mariadb, qui n'est pas pris en charge pour @generatedValue (stratégie = générationtype.entity) code>!
generationtype.entitity code> comme indiqué ci-dessus.
Je devais donc ajouter la propriété suivante au
persistence.xml code>: p>
Eh bien, le message dit que vous devez avoir une table de séquence. Pourquoi ne le créez-vous pas?
Mais pourquoi aurais-je besoin de cette table s'il n'est pas censé être là?