Bonjour à tous,
J'ai un légé soucis pour utiliser les requêtes DQL avec Doctrine....
J'ai un modèle de données comme suite :
- Table :
- tracked_object (id auto-inc, informations de màj de la donnée)
- localized_value (id liée à tracked_object et code)
- system_value (id liée à localized_value avec commentaire et ordre)
- translation (id auto inc, fk localized_value, fk system_value pour la locale et valeur traduite)
- Entities :
- TrackedObject
- LocalizedValue
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
- SystemValue
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
- Locale
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
- Translation
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
- Repositories :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
Bref, je fais ca :
Je récupère l'entité complète avec toutes les dépendances sans aucune erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
Quand je fais cela :
Bah c'est un échec critique :'(
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
Et la requête posant problème :Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 's1_'' in /data/www/dev/16660/gdp/php/library/Doctrine/DBAL/Connection.php:646 Stack trace: #0 /data/www/dev/16660/gdp/php/library/Doctrine/DBAL/Connection.php(646): PDO->query('SELECT t0_.valu...') #1 /data/www/dev/16660/gdp/php/library/Doctrine/ORM/Query/Exec/SingleSelectExecutor.php(46): Doctrine\DBAL\Connection->executeQuery('SELECT t0_.valu...', Array, Array, NULL) #2 /data/www/dev/16660/gdp/php/library/Doctrine/ORM/Query.php(264): Doctrine\ORM\Query\Exec\SingleSelectExecutor->execute(Object(Doctrine\DBAL\Connection), Array, Array) #3 /data/www/dev/16660/gdp/php/library/Doctrine/ORM/AbstractQuery.php(737): Doctrine\ORM\Query->_doExecute() #4 /data/www/dev/16660/gdp/php/library/Doctrine/ORM/AbstractQuery.php(538): Doctrine\ORM\AbstractQuery->execute(NULL, 1) #5 /data/www/dev/16660/gdp/php/library/Gdp/Repository/Translation.php(34): Doctrine\ORM\AbstractQuery->getResult() #6 /data in /data/www/dev/16660/gdp/php/library/Doctrine/DBAL/DBALException.php on line 47
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
Au final, j'ai deux fois la jointure sur system_value, comme si l'entité Locale est jointe correctement mais qu'à la fin, vis à vis de l'entité systemValue il fait quand même une jointure.
J'ai essayé le mapping single table pour cette entité mais .... échec (il sembelrait que le mix SINGLE_TABLE et CLASS TABLE soit impossible...)
Quelqu'un aurait-il une idée ? En sachant derrière que certaines entitées qui héritent de system_value peuvent elles avoir une table de jointure.
L'idée serait peut-être de créer deux entités distinctes permettant de gérer l'un des deux cas mais là on arrive à du lourd en terme de code.... et gérer une table locale juste avec un id en colonne est quelque peu incohérent....
Merci d'avance pour vos réponses.

 

 
		
		 
        

 
			
			

 
   
 



 [Doctrine] Héritage Db et Doctrine
 [Doctrine] Héritage Db et Doctrine
				 Répondre avec citation
  Répondre avec citation

 
  
  
  
 
 
			 
						 car c'est pas la performance que je recherche mais juste un résultat
 car c'est pas la performance que je recherche mais juste un résultat  
						
Partager