Doctrine: Aktualizuj dyskryminator dla SINGLE_TABLE Dziedziczenie
W przypadku tych klas, w jaki sposób zmieniłbyś rekord dla „osoby” na „pracownika”.
/**
* @Entity
* @InheritanceType("SINGLE_TABLE")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})
*/
class Person
{
// ...
}
/**
* @Entity
*/
class Employee extends Person
{
// ...
}
Próbowałem zmienić wartość kolumny dyskryminującej, ale nie mogę uzyskać do niej dostępu. Próbowałem również utworzyć instancję „Employee” i ręcznie skopiować dane, ale to nie działa z automatycznymi identyfikatorami. Zostaje dodany jako nowy rekord zamiast aktualizowania istniejącego.
Czy muszę napisać niestandardowe zapytanie sql lub czy robię coś innego, co jest zasadniczo błędne?