web-dev-qa-db-fra.com

Eclipse signale une erreur sur mon projet JPA

Chaque fois que je réalise un projet JPA, Eclipse signale que mon projet contient des erreurs, mais je ne comprends pas pourquoi. J'ai ajouté une image et des erreurs ci-dessous:

enter image description here

Description Chemin d'accès aux ressources Type d'emplacement La colonne "id" ne peut pas être résolue dans la table "page" Page.Java/BreakpointJPA/src/non/point d'arrêt/ligne de domaine 14 Problème JPA

Description Chemin d'accès aux ressources Type d'emplacement La colonne "titre" ne peut pas être résolue dans la table "page" Page.Java/Point d'arrêtJPA/src/non/point d'arrêt/domaine 18 Problème JPA

Description Chemin d'accès aux ressources Type d'emplacement La colonne de jointure de la clé primaire "id" ne peut pas être résolue dans la table "page" Page.Java/BreakpointJPA/src/non/point d'arrêt/ligne de domaine 10 Problème JPA

enter image description here

11
LuckyLuke

J'ai eu le même problème, la solution pour moi était d'actualiser la connexion à la base de données.

Ouvrez la vue JPA, recherchez l'explorateur de source de données. Là, vous ouvrez Connection à la base de données, connectez-vous à votre base de données, cliquez sur Actualiser Puis apportez quelques modifications à votre fichier et sauvegardez-le, j’ai ajouté une annotation @Column (name = "") à mon champ id. Après cela, le message d'erreur a disparu et l'annotation de la colonne a été supprimée.

Le problème semble être qu'Eclipse lit les tables de la base de données après avoir établi la première connexion, après la fermeture de celle-ci. Donc, si, comme je l’ai fait, vous avez apporté des modifications après cette première connexion dans votre base de données, par exemple, changer le nom du champ de foo_id à id, Eclipse ne le savait pas et est accompagné de cette erreur.

26
Nils

Vieux fil, cependant je viens d'avoir le même problème et résolu avec une approche encore plus rapide.

  1. Propriétés du projet -> JPA
  2. Changer la connexion en. Cliquez sur Appliquer.
  3. Changer la connexion à la valeur précédente. Cliquez sur Appliquer.

J'espère que ça aide quelqu'un.

5
oscar

J'ai eu le même problème. Voici comment je l'ai résolu

  1. rafraîchi la connexion
    • Aller à l'explorateur de source de données
    • Sélectionnez la connexion et faites un clic droit
    • sélectionnez Actualiser
  2. Nettoyer le projet
    • Aller au menu projet
    • sélectionnez propre
2
baris

Lisez ceci si vous voulez résoudre votre problème facilement

Il n'y a pas de problème dans votre base de données. Vous devez simplement créer une nouvelle connexion depuis Eclipse vers la même base de données, comme nous le faisons lors de l’ajout de fonctionnalités JPA au projet.

Pas:-
Créez une nouvelle base de données à partir de votre invite mysql.
Faites un clic droit sur votre projet dans Eclipse/MyEclipse, puis allez dans Propriétés.
Cliquez sur l’onglet Eclipse/MyEclipse à gauche, puis sur le sous-menu JPA.
Cliquez ensuite sur Créer une nouvelle connexion. Mettez un nouveau nom de connexion. Et ajoutez la même base de données. (Vous pouvez aussi changer votre base de données, mais la même base de données le fera également).
Testez la connexion et cliquez sur Terminer.
Pour la première fois, il n'affichera pas le nom de la connexion nouvellement créée. Cliquez simplement sur Ok pour fermer cette fenêtre.

Ensuite, cliquez à nouveau avec le bouton droit de la souris sur Projet, puis sur Propriétés. Vous pouvez maintenant voir votre connexion nouvellement créée sur cette liste déroulante. Sélectionnez cela et cliquez sur OK.

Votre erreur disparaîtra.

Raison possible de cette erreur: -
Eclipse crée une connexion avec votre base de données à chaque fois que vous vous connectez avec un projet utilisant persistence.xml, mais uniquement pour la première fois.
Ainsi, toute modification ultérieure, en particulier du côté de la base de données (nom de la table, etc.) générera une erreur de la part d’Eclipse.

Je vous remercie.

2
Rakesh Chandra

Accédez à l'explorateur de sources de données, déconnectez la connexion à la base de données, après avoir connecté la connexion à la base de données, cliquez avec le bouton droit de la souris sur votre projet et cliquez sur valider.

J'espère que ça t'aide.

Avez-vous les interfaces JPA/JPA2 incluses dans votre projet? Si vous utilisez maven, vous devez inclure une dépendance pour les classes. Je suppose qu'ils le sont puisqu'il n'y a pas de lignes rouges dans les déclarations d'importation, mais pour plus de sécurité, vous devez valider leur existence.

Pour une dépendance JPA2, vous pouvez utiliser:

<dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.0-api</artifactId>
    <version>1.0.0.Final</version>
</dependency>
1
Eric B.

Dans mon cas, il s'agissait simplement d'une ancienne connexion dans Propriétés-> JPA-> Ajouter une connexion. Donc rafraîchir ne va pas aider. Nouvelle connexion pour base de données correcte aidera si l’actualisation ne le permet pas.

0
SkorpEN

Essayez de faire de l’assistant de code entre les guillemets de @Column (name = ""). Vous pouvez également ouvrir la vue Détails JPA et afficher la liste déroulante Nom de colonne pour afficher les options de colonne. Il n'y a pas d'erreur de validation sur l'annotation @Table (name = "page"). Il semble donc qu'Eclipse trouve la table des pages.

0
Karen Butzke

Pouvez-vous essayer ceci:

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id", unique=true, nullable=false)
private int id
0
Khue Vu

Les annotations semblent correctes, êtes-vous sûr que votre classpath de projet est bon? essayez d’abord de créer l’entité sans les champs id et title.

0
kevin the kitten