Bonsoir à tous !

Je mets actuellement en place Hibernate dans un projet. J'ai voulu créer mes classes en passant par le reverse engineer d'Hibernate et je trouve le résultat un peu surprenant.

Tout d'abord voici la base de données :

Nom : 354972.png
Affichages : 39
Taille : 47,8 Ko

Au niveaux des tables utilisateurconsole et utilisateurjeu, Hibernate m'a généré 2 classes à chaque fois par exemple pour utilisateurconsole et utilisateurconsole Id :

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
package fr.exchangeit.model;
// Generated 29 déc. 2011 01:44:02 by Hibernate Tools 3.4.0.CR1
 
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
 
/**
 * Utilisateurconsole generated by hbm2java
 */
@Entity
@Table(name="utilisateurconsole"
    ,catalog="exchangeit"
)
public class Utilisateurconsole  implements java.io.Serializable {
 
     private UtilisateurconsoleId id;
     private Console console;
     private Utilisateur utilisateur;
     private Boolean a;
 
    public Utilisateurconsole() {
    }
 
    public Utilisateurconsole(UtilisateurconsoleId id, Console console, Utilisateur utilisateur) {
        this.id = id;
        this.console = console;
        this.utilisateur = utilisateur;
    }
    public Utilisateurconsole(UtilisateurconsoleId id, Console console, Utilisateur utilisateur, Boolean a) {
       this.id = id;
       this.console = console;
       this.utilisateur = utilisateur;
       this.a = a;
    }
 
     @EmbeddedId
 
 
    @AttributeOverrides( {
        @AttributeOverride(name="utilisateur", column=@Column(name="utilisateur", nullable=false) ), 
        @AttributeOverride(name="console", column=@Column(name="console", nullable=false) ) } )
    public UtilisateurconsoleId getId() {
        return this.id;
    }
 
    public void setId(UtilisateurconsoleId id) {
        this.id = id;
    }
 
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="console", nullable=false, insertable=false, updatable=false)
    public Console getConsole() {
        return this.console;
    }
 
    public void setConsole(Console console) {
        this.console = console;
    }
 
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="utilisateur", nullable=false, insertable=false, updatable=false)
    public Utilisateur getUtilisateur() {
        return this.utilisateur;
    }
 
    public void setUtilisateur(Utilisateur utilisateur) {
        this.utilisateur = utilisateur;
    }
 
    @Column(name="a")
    public Boolean getA() {
        return this.a;
    }
 
    public void setA(Boolean a) {
        this.a = a;
    }
}
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
package fr.exchangeit.model;
// Generated 29 déc. 2011 01:44:02 by Hibernate Tools 3.4.0.CR1
 
 
import javax.persistence.Column;
import javax.persistence.Embeddable;
 
/**
 * UtilisateurconsoleId generated by hbm2java
 */
@Embeddable
public class UtilisateurconsoleId  implements java.io.Serializable {
 
     private int utilisateur;
     private int console;
 
    public UtilisateurconsoleId() {
    }
 
    public UtilisateurconsoleId(int utilisateur, int console) {
       this.utilisateur = utilisateur;
       this.console = console;
    }
 
    @Column(name="utilisateur", nullable=false)
    public int getUtilisateur() {
        return this.utilisateur;
    }
 
    public void setUtilisateur(int utilisateur) {
        this.utilisateur = utilisateur;
    }
 
    @Column(name="console", nullable=false)
    public int getConsole() {
        return this.console;
    }
 
    public void setConsole(int console) {
        this.console = console;
    }
 
   public boolean equals(Object other) {
         if ( (this == other ) ) return true;
		 if ( (other == null ) ) return false;
		 if ( !(other instanceof UtilisateurconsoleId) ) return false;
		 UtilisateurconsoleId castOther = ( UtilisateurconsoleId ) other; 
 
		 return (this.getUtilisateur()==castOther.getUtilisateur())
 && (this.getConsole()==castOther.getConsole());
   }
 
   public int hashCode() {
         int result = 17;
 
         result = 37 * result + this.getUtilisateur();
         result = 37 * result + this.getConsole();
         return result;
   }   
}
J'avoue ne pas trop comprendre... Voici par exemple le script SQL de la table utilisateurconsole :

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
-- -----------------------------------------------------
-- Table `exchangeit`.`utilisateurconsole`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `exchangeit`.`utilisateurconsole` (
  `utilisateur` INT(11) NOT NULL ,
  `console` INT(11) NOT NULL ,
  `a` TINYINT(1)  NULL ,
  PRIMARY KEY (`utilisateur`, `console`) ,
  INDEX `fk_utilisateur_has_console_console1` (`console` ASC) ,
  INDEX `fk_utilisateur_has_console_utilisateur1` (`utilisateur` ASC) ,
  CONSTRAINT `fk_utilisateur_has_console_utilisateur1`
    FOREIGN KEY (`utilisateur` )
    REFERENCES `exchangeit`.`utilisateur` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_utilisateur_has_console_console1`
    FOREIGN KEY (`console` )
    REFERENCES `exchangeit`.`console` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
Ma question est donc : Dois-je laisser en l'état ou dois-je modifier des choses ? Et si oui, comment modifier ?

Merci d'avance pour votre aide !