Feature: #27057 - Relations to the same table in Extbase

See forge#27057

Description

It is now possible to use a domain model where an object is connected to another object of the same class directly

namespace \Vendor\Extension\Domain\Model;
class A {
        /**
        * @var \Vendor\Extension\Domain\Model\A
        */
        protected $parent;

as well as using a domain model where an object has multiple relations to objects of the same class

namespace \Vendor\Extension\Domain\Model;
class A {
        /**
        * @var \Vendor\Extension\Domain\Model\B
        */
        protected $x;

        /**
        * @var \Vendor\Extension\Domain\Model\B
        */
        protected $y;

as well as indirectly

namespace \Vendor\Extension\Domain\Model;
class A {
        /**
        * @var \Vendor\Extension\Domain\Model\B
        */
        protected $b;

        /**
        * @var \Vendor\Extension\Domain\Model\C
        */
        protected $c;

namespace \Vendor\Extension\Domain\Model;
class B {
        /**
        * @var \Vendor\Extension\Domain\Model\C
        */
        protected $c;

Using this kind of relations before was only possible by overriding the Extbase query builder and doing manual queries because the Extbase query builder created wrong SQL statements. Now Extbase properly supports these cases.

Impact

Extbase now correctly handles relations to objects of the same class.