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

JPA Java Discussion :

Création nouvelle application JEE avec ancienne BD


Sujet :

JPA Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Création nouvelle application JEE avec ancienne BD
    Bonjour tout le monde

    Nous avons une ancienne application en Forms avec une BD Oracle bien sure nous avons la tache d'en faire une nouvelle application web JEE (JPA1.1 EJB3 JSF1.0 )avec la même Base puisque le client l'as déjà rempli
    jusque la tout vas bien

    le problème est que dans toutes les tables, nous avons trouvé des clés primaires double où il y a le code société

    ça signifie par exemple
    Table Voiture :
    - Clé primaire : (matricule + code_societe)
    Table Option :
    - clé primaire : (code_opt + code_societe)

    du coup, lorque on a l'association N:N entre Voiture et option, nous trouvons comme suit
    Table VoitureOption :
    clé primaire : (matricule + code_societe + code_opt + code_societe)

    vous voyez le problème code_societe en double !!

    dans l'ancienne version de l'application, ils prenait la colonne en double et ils la supprimaient dans la base.

    Est ce que quelqu'un un a une proposition de solution avec JPA et merci.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Points : 12
    Points
    12
    Par défaut !!!
    tout le monde a vu le sujet et aucune réponse ? Même j'ai envoyé ce problème a Mr Antonio Congalvez et aucune réponse.
    A ce point y'as aucune chance !

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 956
    Points : 4 385
    Points
    4 385
    Par défaut
    Essayez 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    public class VoiturePK {
    	private String matricule ;
    	private String code_societe ;
     
    	public VoiturePK() {
    	}
     
    	…getters and setters …
    	…hashCode
    	…equals
    }
     
    @IdClass(VoiturePK.class)
    @Entity
    @Table(schema="public",name="VOITURE")
    public class Voiture {
    	@Id String matricule ;
    	@Id String code_societe ;
     
    	@ManyToMany
    	@JoinTable(schema="public",
    		name="VOITURE_OPTION",
    		joinColumns={
    			@JoinColumn(name="matricule", referencedColumnName="matricule", nullable=false, updatable=false),
    			@JoinColumn(name="code_societe", referencedColumnName="code_societe", nullable=false, updatable=false)
    		},
    		inverseJoinColumns= {
    			@JoinColumn(name="code_societe", referencedColumnName="code_societe", nullable=false, updatable=false),
    			@JoinColumn(name="code_opt", referencedColumnName="code_opt", nullable=false, updatable=false)
    		}
    	)
    	public Set<Option> options ;
     
    	… etc …
    }
     
    public class OptionPK {
    	private String code_opt ;
    	private String code_societe ;
     
    	public OptionPK() {
    	}
     
    	… etc …
    }
     
    @IdClass(OptionPK.class)
    @Entity
    @Table(schema="public",name="OPTION")
    public class Option {
    	@Id String code_opt ;
    	@Id String code_societe ;
     
    	@ManyToMany
    	@JoinTable(schema="public",
    		name="VOITURE_OPTION",
    		joinColumns={
    			@JoinColumn(name="code_societe", referencedColumnName="code_societe", nullable=false, updatable=false),
    			@JoinColumn(name="code_opt", referencedColumnName="code_opt", nullable=false, updatable=false)
    		},
    		inverseJoinColumns= {
    			@JoinColumn(name="matricule", referencedColumnName="matricule", nullable=false, updatable=false),
    			@JoinColumn(name="code_societe", referencedColumnName="code_societe", nullable=false, updatable=false)
    		}
    	)
    	public Set<Voiture> voitures ;
     
    }
     
    public class OptionVoiturePK {
    	private String matricule ;
    	private String code_societe ;
    	private String code_opt ;
    	… etc …
    }
     
    @Entity
    @Table(schema="public",name="VOITURE_OPTION")
    public class VoitureOption {
    	@Id String matricule ;
    	@Id String code_opt ;
    	@Id String code_societe ;
     
    	… etc …
    }
    DDL généré par HibernateTools (pour PostgreSQL):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    create table public.OPTION (code_opt varchar(255) not null, code_societe varchar(255) not null, primary key (code_opt, code_societe));
    create table public.VOITURE (code_societe varchar(255) not null, matricule varchar(255) not null, primary key (code_societe, matricule));
    create table public.VOITURE_OPTION (code_opt varchar(255) not null, code_societe varchar(255) not null, matricule varchar(255) not null, primary key (code_societe, matricule, code_opt));
    alter table public.VOITURE_OPTION add constraint FK4E703BF0E99CA00C foreign key (code_opt, code_societe) references public.OPTION;
    alter table public.VOITURE_OPTION add constraint FK4E703BF057BC8F94 foreign key (code_societe, matricule) references public.VOITURE;

Discussions similaires

  1. Tutorial APPLICATION JEE AVEC JBOSS
    Par mohamedsghaier dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 24/02/2013, 21h09
  2. Application JEE avec Swing
    Par the watcher dans le forum Java EE
    Réponses: 4
    Dernier message: 06/07/2011, 13h34
  3. Application JEE avec EJB et JSP
    Par aya19742007 dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 01/06/2011, 15h03
  4. [Embarqué] [WinCE sur ARMv4] Création d'application Qt avec Visual Studio 2008
    Par GoodKap.com dans le forum Plateformes
    Réponses: 5
    Dernier message: 07/10/2009, 14h16
  5. Réponses: 2
    Dernier message: 26/05/2003, 19h42

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