IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre actif
    Inscrit en
    juin 2005
    Messages
    577
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 577
    Points : 240
    Points
    240
    Par défaut JPA @ManyToMany: supprimer dans la 3e table générée
    Bonsoir

    J'ai 2 beans Entrée et Emplacement liés par une relation many to many et par conséquent, une 3e table a été générée.

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    @Entity
    @Table(name = "ENTREE")
    public class Entree {
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	@Column(name = "ID_ENTREE", updatable = false, nullable = false)
    	private long idEntree;
    @ManyToMany( fetch = FetchType.LAZY)
    	 @JoinTable(name = "entree_emplacement",
         joinColumns = {
                 @JoinColumn(name = "id_entree")},
         inverseJoinColumns = {
                 @JoinColumn(name = "id_emplacement")})
    	 private Set<Emplacement> emplacements = new HashSet<>();

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Entity
    @Table(name = "EMPLACEMENT")
    public class Emplacement {
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	@Column(name = "ID_EMPLACEMENT", updatable = false, nullable = false)
    	private long idEmplacement;
     
    	@Column(name = "NUM_EMPLACEMENT",  insertable=true, updatable=true, nullable=false)
    	private String numEmplacement;
     
    	@ManyToMany( fetch = FetchType.LAZY, mappedBy = "emplacements")
        private Set<Entree> entrees = new HashSet<>();

    J'essaye de supprimer des lignes dans la 3e générée mais je reçois ce message d'erreur:

    Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: entree_emplacement is not mapped
    Voici mon code de suppression:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     @Transactional
    	 @Modifying
    	 @Query("DELETE from entree_emplacement WHERE id_entree = :id_entree and id_emplacement = :id_emplacement")
    	 void deleteEntreeEmplacementById( @Param("id_entree") long idEntree,  @Param("id_emplacement") long id_emplacement );

    Merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    novembre 2006
    Messages
    7 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 7 183
    Points : 9 306
    Points
    9 306
    Billets dans le blog
    1
    Par défaut
    Rien d'étonnant, c'est une requête native et tu essayes de la faire interpréter comme une requête JPQL. Du coup, il cherche une classe de mapping entree_emplacement que bien sûr il ne trouve pas... d'où l'erreur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Inscrit en
    juin 2005
    Messages
    577
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 577
    Points : 240
    Points
    240
    Par défaut
    C'est résolu, il fallait rajouter nativeQuery = true à la fin:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
     @Query(value ="DELETE from entree_emplacement  WHERE id_entree = :id_entree and id_emplacement = :id_emplacement", nativeQuery = true)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JPA @ManyToMany: enregistrer dans la 3e table
    Par momjunior dans le forum JPA
    Réponses: 1
    Dernier message: 20/11/2020, 12h03
  2. Réponses: 8
    Dernier message: 18/01/2016, 16h21
  3. Hibernate/JPA: ManyToMany, mise à jour dans une table de jointure.
    Par PhilippeGibault dans le forum Hibernate
    Réponses: 1
    Dernier message: 19/04/2011, 14h40
  4. erreur #Supprimé dans une table
    Par vulcain91 dans le forum Access
    Réponses: 1
    Dernier message: 13/02/2008, 19h35
  5. Réponses: 2
    Dernier message: 12/05/2006, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo