File tree 2 files changed +42
-1
lines changed
tests/Doctrine/Tests/ORM/Tools
2 files changed +42
-1
lines changed Original file line number Diff line number Diff line change @@ -255,7 +255,7 @@ public function validateClass(ClassMetadataInfo $class)
255
255
}
256
256
}
257
257
258
- if (! $ class ->isInheritanceTypeNone () && ! $ class ->isRootEntity () && array_search ($ class ->name , $ class ->discriminatorMap ) === false ) {
258
+ if (! $ class ->isInheritanceTypeNone () && ! $ class ->isRootEntity () && ! $ class -> isMappedSuperclass && array_search ($ class ->name , $ class ->discriminatorMap ) === false ) {
259
259
$ ce [] = "Entity class ' " . $ class ->name . "' is part of inheritance hierarchy, but is " .
260
260
"not mapped in the root entity ' " . $ class ->rootEntityName . "' discriminator map. " .
261
261
'All subclasses must be listed in the discriminator map. ' ;
Original file line number Diff line number Diff line change @@ -199,6 +199,47 @@ public function testInvalidAssociationInsideEmbeddable(): void
199
199
$ ce
200
200
);
201
201
}
202
+
203
+ /**
204
+ * @group 8771
205
+ */
206
+ public function testMappedSuperclassNotPresentInDiscriminator (): void
207
+ {
208
+ $ class1 = $ this ->em ->getClassMetadata (ChildEntity::class);
209
+ $ ce = $ this ->validator ->validateClass ($ class1 );
210
+
211
+ $ this ->assertEquals ([], $ ce );
212
+ }
213
+ }
214
+
215
+ /**
216
+ * @MappedSuperClass
217
+ */
218
+ abstract class MappedSuperclass extends ParentEntity
219
+ {
220
+ }
221
+
222
+ /**
223
+ * @Entity
224
+ * @InheritanceType("SINGLE_TABLE")
225
+ * @DiscriminatorMap({"child" = ChildEntity::class})
226
+ */
227
+ abstract class ParentEntity
228
+ {
229
+ /**
230
+ * @var mixed
231
+ * @Id
232
+ * @Column
233
+ */
234
+ protected $ key ;
235
+ }
236
+
237
+ /**
238
+ * @Entity
239
+ */
240
+ class ChildEntity extends MappedSuperclass
241
+ {
242
+
202
243
}
203
244
204
245
/**
You can’t perform that action at this time.
0 commit comments