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

Hibernate Java Discussion :

Mapping OneToMany / ManyToOne


Sujet :

Hibernate Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 81
    Points : 29
    Points
    29
    Par défaut Mapping OneToMany / ManyToOne
    Bonjour,

    J'ai un mapping particulier :

    Nom : users.png
Affichages : 86
Taille : 9,9 Ko

    ##### USERS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    @Entity
    @Table(name = "users")
    public class Users implements Serializable {
     
        @Id
        @Column(name = "username")
        private String username;
        @Column(name = "password")
        private String password;
        @Column(name = "enabled")
        private Boolean enabled;
        @Column(name = "email")
        private String email;
     
        @OneToMany(mappedBy = "users", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
        private List<Authorities> authoritiesList;
    ##### AUTHORITIES

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @Entity
    @Table(name = "authorities")
    public class Authorities implements Serializable {
     
        @EmbeddedId
        protected AuthoritiesPK authoritiesPK;
     
        /**
         * ManyToOne Users
         */
        @ManyToOne
        @JoinColumn(name = "username", insertable = false, updatable = false) 
        private Users users;
    ##### AUTHORITIESPK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @Embeddable
    public class AuthoritiesPK implements Serializable {
     
        @Column(name = "username")
        private String username;
        @Column(name = "authority")
        private String authority;
    Mais je galère à modifier ou supprimer un utilisateur avec les authorities

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public void deleteUser(Users pUser) {
     
            EntityTransaction tx = getEM().getTransaction();
     
            if (pUser.getAuthoritiesList() != null) {
                tx.begin();
                List<Authorities> authoritieses = pUser.getAuthoritiesList();
                for (Authorities a : authoritieses) {
                    a.setUsers(null);
                    getEM().remove(a);
                }
                pUser.getAuthoritiesList().clear();
                pUser = getEM().merge(pUser);
                tx.commit();
            }
            tx.begin();
            getEM().remove(pUser);
            tx.commit();
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected EntityManager getEM() {
            if (em == null) {
                em = Persistence.createEntityManagerFactory(
                        JPA_UNIT_NAME).createEntityManager();
            }
            return em;
        }
    MERCI DE VOTRE AIDE

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Salut, la ca marche,
    Essaies ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public void deleteUser(Users pUser) {
     
            EntityTransaction tx = getEM().getTransaction();
     Tx.begin ();
            if (pUser.getAuthoritiesList() != null) {
     
                List<Authorities> authoritieses = pUser.getAuthoritiesList();
                for (Authorities a : authoritieses) {
                    a.setUsers(null);
                    getEM().remove(a);
                }
                pUser.getAuthoritiesList().clear();
                pUser = getEM().merge(pUser);
     
            }
     
            getEM().remove(pUser);
            tx.commit();
        }

Discussions similaires

  1. OneToMany ManyToOne - Pere/fils - Suppression du Set
    Par RhumRom dans le forum Hibernate
    Réponses: 4
    Dernier message: 03/08/2010, 20h04
  2. Problème suppression @OneToMany< -> @ManyToOne
    Par Invité dans le forum Persistance des données
    Réponses: 0
    Dernier message: 30/06/2010, 23h18
  3. ReQuete hql & mapping @OneToMany
    Par Bigoodheart dans le forum Hibernate
    Réponses: 9
    Dernier message: 05/05/2010, 11h25
  4. Réponses: 1
    Dernier message: 02/09/2009, 09h22
  5. [JPA] [EJB3] - Mapping et @ManyToOne erreur
    Par ®om dans le forum JPA
    Réponses: 29
    Dernier message: 04/03/2007, 23h31

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