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 :

Problème d'ajout de deux objets


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut Problème d'ajout de deux objets
    Bonjour,
    j'ai un problème d'ajout de deux objets tant que j'ai besoin d'un 1
    voila les différentes classe de mon projet

    Player:
    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
    @Entity
    public class Player implements Serializable {
     
    	private int code;
    	private String firstName;
    	private String lastName;
    	private String nationality;
    	private Date dateOfBirth;
    	private List<Contract> contracts;
    	private static final long serialVersionUID = 1L;
     
    	public Player() {
    		super();
    	}
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	public int getCode() {
    		return this.code;
    	}
     
    	public void setCode(int code) {
    		this.code = code;
    	}
     
    	public String getFirstName() {
    		return this.firstName;
    	}
     
    	public void setFirstName(String firstName) {
    		this.firstName = firstName;
    	}
     
    	public String getLastName() {
    		return this.lastName;
    	}
     
    	public void setLastName(String lastName) {
    		this.lastName = lastName;
    	}
     
    	@OneToMany(mappedBy = "player", cascade = CascadeType.ALL)
    	@LazyCollection(LazyCollectionOption.FALSE)
    	public List<Contract> getContracts() {
    		return contracts;
    	}
     
    	public void setContracts(List<Contract> contracts) {
    		this.contracts = contracts;
    	}
     
    	public void addContracts(List<Contract> contracts) {
    		for (Contract c : contracts) {
    			c.setPlayer(this);
    		}
    		this.contracts = contracts;
    	}
     
    	public String getNationality() {
    		return nationality;
    	}
     
    	public void setNationality(String nationality) {
    		this.nationality = nationality;
    	}
     
    	public Date getDateOfBirth() {
    		return dateOfBirth;
    	}
     
    	public void setDateOfBirth(Date dateOfBirth) {
    		this.dateOfBirth = dateOfBirth;
    	}
    classe Team:
    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
    @Entity
    public class Team implements Serializable {
     
     
    	private int code;
    	private String name;
    	private String country;
    	private String division;
    	private Date established;
    	private List<Contract> contracts;
    	private static final long serialVersionUID = 1L;
     
    	public Team() {
    		super();
    	}
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	public int getCode() {
    		return this.code;
    	}
     
    	public void setCode(int code) {
    		this.code = code;
    	}
     
    	public String getName() {
    		return this.name;
    	}
     
    	public void setName(String name) {
    		this.name = name;
    	}
     
    	public String getCountry() {
    		return this.country;
    	}
     
    	public void setCountry(String country) {
    		this.country = country;
    	}
     
    	public String getDivision() {
    		return this.division;
    	}
     
    	public void setDivision(String division) {
    		this.division = division;
    	}
     
    	public Date getEstablished() {
    		return this.established;
    	}
     
    	public void setEstablished(Date established) {
    		this.established = established;
    	}
     
    	@OneToMany(mappedBy = "team", cascade = CascadeType.ALL)
    	@LazyCollection(LazyCollectionOption.FALSE)
    	public List<Contract> getContracts() {
    		return contracts;
    	}
     
    	public void setContracts(List<Contract> contracts) {
    		this.contracts = contracts;
    	}
     
    	public void addContracts(List<Contract> contracts) {
    		for (Contract c : contracts)
    			c.setTeam(this);
    		this.contracts = contracts;
    	}
    et la classe Contract:
    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
     
    @Entity
    public class Contract implements Serializable {
     
    	private int reference;
    	private String type;
    	private double duration;
    	private Date dateSignature;
    	private boolean state;
    	private Team team;
    	private Player player;
    	private static final long serialVersionUID = 1L;
     
    	public Contract() {
    		super();
    	}
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	public int getReference() {
    		return this.reference;
    	}
     
    	public void setReference(int reference) {
    		this.reference = reference;
    	}
     
    	public String getType() {
    		return type;
    	}
     
    	public void setType(String type) {
    		this.type = type;
    	}
     
    	public double getDuration() {
    		return duration;
    	}
     
    	public void setDuration(double duration) {
    		this.duration = duration;
    	}
     
    	public Date getDateSignature() {
    		return dateSignature;
    	}
     
    	public void setDateSignature(Date dateSignature) {
    		this.dateSignature = dateSignature;
    	}
     
    	public boolean isState() {
    		return state;
    	}
     
    	public void setState(boolean state) {
    		this.state = state;
    	}
     
    	@ManyToOne(cascade = CascadeType.ALL)
    	public Player getPlayer() {
    		return player;
    	}
     
    	public void setPlayer(Player player) {
    		this.player = player;
    	}
     
    	@ManyToOne(cascade = CascadeType.ALL)
    	public Team getTeam() {
    		return team;
    	}
     
    	public void setTeam(Team team) {
    		this.team = team;
    	}
    quand je fait cet test
    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
    Player p1 = new Player();
    		p1.setDateOfBirth(dateOfBirth);
    		p1.setFirstName("p1");
    		p1.setLastName("p1");
    		p1.setNationality("Tunisienne");
     
    		Contract c1 = new Contract();
    		c1.setDateSignature(date);
    		c1.setDuration(2);
    		c1.setState(true);
    		c1.setType("free");
     
    		Player p2 = new Player();
    		p2.setDateOfBirth(dateOfBirth);
    		p2.setFirstName("p2");
    		p2.setLastName("p2");
    		p2.setNationality("Tunisienne");
     
    		Contract c2 = new Contract();
    		c2.setDateSignature(date);
    		c2.setDuration(3);
    		c2.setState(true);
    		c2.setType("free");
     
    		Team team = new Team();
    		team.setCountry("countryteam");
    		team.setName("name team");
    		team.setDivision("Ligue 1");
    		team.setEstablished(established);
     
    		c1.setTeam(team);
    		c2.setTeam(team);
     
    		List<Contract> cs1 = new ArrayList<Contract>();
    		cs1.add(c1);
    		List<Contract> cs2 = new ArrayList<Contract>();
    		cs2.add(c2);
     
    		p1.addContracts(cs1); // setContracts(cs1)
    		p2.addContracts(cs2); // setContracts(cs2)
     
    		playerBean.addPlayer(p1);
    		playerBean.addPlayer(p2);
    et voila le problème que j’espère qu'il une solution grâce a votre aide merci
    l'ajout de deux objets du team.

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    aucune réponse !! SVP c'est très urgent

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Mais quel est le problème au juste ?

    Tu créés 2 objets (Player ?) alors que tu as besoin d'en créer qu'un seul ? Bah, crées en qu'un

    En tout cas, l'affichage que tu montres à la fin me semble conforme à ce qui est fait, autant que je puisse en juger avec le code incomplet : 2 players, avec chacun 1 contrat, pour la même team, ajoutés à playerBean.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    2 players, avec chacun 1 contrat, pour la même team, ajoutés à playerBean
    ***********************************************************
    le problème c'est que le team sera ajouter deux fois

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Bouge pas, j'appelle les pompiers si c'est urgent.


    Tu peux remplacer ce bout de code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		Team team = new Team();
    		team.setCountry("countryteam");
    		team.setName("name team");
    		team.setDivision("Ligue 1");
    		team.setEstablished(established);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		Team team = new Team();
    		team.setCountry("countryteam");
    		team.setName("name team"+Math.random());
    		team.setDivision("Ligue 1");
    		team.setEstablished(established);
    Ca permettra facilement de voir si ton problème est que ton code est appelé deux fois.

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    normalement le code est appelé deux fois


    je pense que ici l'appel duplicatif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c1.setTeam(team);
    		c2.setTeam(team);
    chaque appel de la méthode setter de l'objet Team qui se trouve dans la classe contract il l'ajoute !!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/01/2015, 10h55
  2. Réponses: 3
    Dernier message: 25/04/2009, 15h34
  3. Problème d'ajout d'objet avec clé étrangère
    Par zuzuu dans le forum Hibernate
    Réponses: 7
    Dernier message: 16/03/2009, 10h08
  4. Problème de supersposition de deux objet graphique
    Par ggounouman dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 12/09/2007, 13h54
  5. Problème pour faire bouger deux objets simultanement
    Par LinuxUser dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 22/04/2007, 23h19

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