Bonjour, je suis confronté à un problème que je ne parviens pas à résoudre.
J'ai le script de création de tables suivant :
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
87
88
 
DROP TABLE IF EXISTS `Acces`, `StatApplication`, `BaseAssoc`, `VersionApplication`, `BaseDonnee`, `Poste`, `Matrice`, `Application`, `Utilisateur`|
 
CREATE TABLE IF NOT EXISTS `Application` (
  `numApplication` SMALLINT(5) UNSIGNED AUTO_INCREMENT COMMENT 'Identifiant d''une application dans la base de donnée.',
  `nomApplication` VARCHAR(255) NOT NULL COMMENT 'Nom d''une application.',
  PRIMARY KEY (`numApplication`),
  UNIQUE INDEX (`nomApplication`)
) COMMENT 'Table contenant toutes les application (sans leurs version).' ENGINE=InnoDB  DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `VersionApplication` (
  `numApplication` SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Numéro d''une application dans la base de donnée.',
  `versionApplication` VARCHAR(255) NOT NULL COMMENT 'Version d''une application.',
  `tailleApplication` BIGINT NOT NULL COMMENT 'Taille d''une application.',
  `nbUtilisateur` INT(10) UNSIGNED DEFAULT 0 COMMENT 'Nombre d''utilisateurs d''une version d''aplication.',
  PRIMARY KEY (`numApplication`, `versionApplication`),
  INDEX (`numApplication`),
  FOREIGN KEY (`numApplication`) REFERENCES `Application`(`numApplication`) ON UPDATE CASCADE ON DELETE CASCADE,
  INDEX (`versionApplication`(255))
) COMMENT 'Table contenant la corespondance Application/VersionApplication ainsi que la taille d''une application.' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `StatApplication` (
  `numApplication` SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Identifiant d''une application dans la base de donnée.',
  `versionApplication` VARCHAR(255) NOT NULL COMMENT 'Version d''une application.',
  `date` DATE NOT NULL COMMENT 'Date de statistics.',
  `nbAcces` INT(10) UNSIGNED COMMENT 'Nombre d''accès total pour une version d''application à une date donnée.',
  PRIMARY KEY (`numApplication`, `versionApplication`, `date`),
  INDEX (`numApplication`),
  FOREIGN KEY (`numApplication`) REFERENCES `Application`(`numApplication`) ON UPDATE CASCADE ON DELETE CASCADE,
  FOREIGN KEY (`versionApplication`) REFERENCES `VersionApplication`(`versionApplication`)
) COMMENT 'Table contenant les statistics d''accès pour les applications.' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `BaseDonnee` (
  `numBase` INT(10) UNSIGNED AUTO_INCREMENT COMMENT 'Identifiant d''une base de donnée dans la base de donnée.',
  `pathBase` VARCHAR(255) DEFAULT NULL COMMENT 'Chemin d''une base de donnée.',
  `tailleBase` BIGINT DEFAULT NULL COMMENT 'Taille d''une base de donnée.',
  `uniteLogique` VARCHAR(255) DEFAULT NULL COMMENT 'Unité logique d''une base de donnée.',
  PRIMARY KEY (`numBase`)
) COMMENT 'Table contenant les multiples bases de données utilisées par les différentes applications.' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `BaseAssoc` (
  `numApplication` SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Identifiant d''une application dans la base de donnée.',
  `numBaseAssoc` INT(10) UNSIGNED NOT NULL COMMENT 'Identifiant d''une base de donnée dans la base de donnée.',
  PRIMARY KEY  (`numApplication`,`numBaseAssoc`),
  INDEX (`numApplication`),
  FOREIGN KEY (`numApplication`) REFERENCES `Application`(`numApplication`) ON UPDATE CASCADE ON DELETE CASCADE,
INDEX (`numBaseAssoc`),
  FOREIGN KEY (`numBaseAssoc`) REFERENCES `BaseDonnee`(`numBase`) ON UPDATE CASCADE ON DELETE CASCADE
) COMMENT 'Table contenant la correspondance Application/BaseDonnee.' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `matrice` (
  `numMatrice` SMALLINT(5) UNSIGNED AUTO_INCREMENT COMMENT 'Identifiant d''une matrice dans la base de donnée.',
  `socleTechnique` VARCHAR(255) NOT NULL COMMENT 'Socle technique d''une matrice.',
  PRIMARY KEY  (`numMatrice`),
  UNIQUE INDEX (`socleTechnique`)
) COMMENT 'Table contenant les différentes matrices' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `poste` (
  `numPoste` INT(10) UNSIGNED AUTO_INCREMENT COMMENT 'Identifiant d''un poste dans la base de donnée.',
  `ip` VARCHAR(15) NOT NULL COMMENT 'Adresse IP d''un poste.',
  `numMatrice` SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Numéro de la matrice d''un poste.',
  PRIMARY KEY (`numPoste`),
  INDEX (`numMatrice`),
  FOREIGN KEY (`numMatrice`) REFERENCES `Matrice`(`numMatrice`) ON UPDATE CASCADE ON DELETE CASCADE
) COMMENT 'Table contenant les informations sur les différents postes.' ENGINE=InnoDB DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `Utilisateur` (
  `numUtilisateur` INT(10) UNSIGNED AUTO_INCREMENT COMMENT 'Identifiant d''un utilisateur dans la base de donnée.',
  `login` VARCHAR(255) NOT NULL COMMENT 'Login d''un utilisateur.',
  PRIMARY KEY (`numUtilisateur`),
  UNIQUE INDEX (`login`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8|
 
CREATE TABLE IF NOT EXISTS `acces` (
  `numApplication` SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Identifiant de l''application ayant effectué un accès.',
  `versionApplication` VARCHAR(255) NOT NULL COMMENT 'Version de l''aplication ayant effectué un accès.',
  `numUtilisateur` int(10) UNSIGNED NOT NULL COMMENT 'Identifiant de l''utilisateur de l''application ayant effectuer un accès.',
  `numPoste` INT(10) UNSIGNED NOT NULL COMMENT 'Identifiant du poste où l''application est utilisé.',
  `date` DATETIME NOT NULL COMMENT 'Date d''un accès.',
  PRIMARY KEY  (`numApplication`,`versionApplication`,`numUtilisateur`,`numPoste`,`date`),
  INDEX (`numApplication`),
  FOREIGN KEY (`numApplication`) REFERENCES `Application`(`numApplication`) ON UPDATE CASCADE ON DELETE CASCADE,
  FOREIGN KEY (`versionApplication`) REFERENCES `VersionApplication`(`versionApplication`) ON UPDATE CASCADE ON DELETE CASCADE,
  INDEX (`numUtilisateur`),
  FOREIGN KEY (`numUtilisateur`) REFERENCES `Utilisateur`(`numUtilisateur`) ON UPDATE CASCADE ON DELETE CASCADE,
  INDEX (`numPoste`),
  FOREIGN KEY (`numPoste`) REFERENCES `Poste`(`numPoste`) ON UPDATE CASCADE ON DELETE CASCADE
) COMMENT 'Table contenant tous les accès effectué par les différentes applications.' ENGINE=InnoDB DEFAULT CHARSET=utf8|
.
J'essaye de générer mais entities avec Eclipse Version: 3.4.2 en faisant un projet JPA et ensuite clique droit sur le projet jpa et JPA Tools|generate entities.
Je sélectionne toutes mes tables puis lors de la génération il s'arrête en me mettant l'erreur :
Problem Occurred
'Generating Entities' has encountered a problem.
An internal error occurred during: "Generating
Entities".
Et dans Details :
An internal error occurred during: "Generating Entities".
statapplication.statapplication_ibfk_2 - mismatched sizes: 1 vs. 2
.
Pouvez-vous m'aider à trouver d'où vient cette erreur? J'ai cherché sur internet dans la doc de JPA de MySQL etc, mais je ne trouves pas grand chose.
Merci, bonne journée.