---
title: "Extbase-Repository liefert keine Objekte von Unterklassen (Single Table Inheritance)"
url: "https://www.typo3.net/d/126642-extbase-repository-liefert-keine-objekte-von-unterklassen-single-table-inheritance"
source: "typo3.net"
tags: ["Extensions","Extbase","Datenbank","Frage","TCA"]
created: "2018-03-22"
last_reply: "2018-06-07"
replies: 3
solved: false
page: 1
pages: 1
lang: "de"
---

# Extbase-Repository liefert keine Objekte von Unterklassen (Single Table Inheritance)

Extensions › Extbase · 3 Antworten · gestartet 2018-03-22

## Eröffnungsbeitrag

**jochen** · 2018-03-22 · [Beitrag #1](https://www.typo3.net/d/126642-extbase-repository-liefert-keine-objekte-von-unterklassen-single-table-inheritance/1)

Hallo zusammen,

ich versuche, aus einem Repository Objekte zurück zu bekommen, die Unterklassen repräsentieren. Diese wurden mit Single Table Inheritance definiert. Siehe <https://docs.typo3.org/typo3cms/ExtbaseFluidBook/6-Persistence/5-modeling-the-class-hierarchy.html>

Es ist das gleiche Problem wie hier beschrieben: <https://forum.typo3.org/index.php?t=msg&goto=736175>

Bisher funktioniert folgendes:
Um die verschiedenen Unterklassen unterscheiden zu können, habe ich ein Feld "record_type" definiert.
Im Backend kann man den RecordType in einem Dropdown auswählen, die Formularfelder ändern sich entsprechend der definierten Unterklassen.
Der RecordType wird richtig im Datenbankfeld record_type gespeichert.

Das funktioniert nicht:
Wenn das Repository im Controller abgefragt wird, dann liefert es nur Objekte des Typs BaseClass (die alle Unterklassen erweitern / extenden).

Unten findet Ihr meine aktuelle Konfiguration. TYPO3 / Extbase 8.7.11.

Was mache ich falsch? Falls weitere Informationen benötigt werden, bitte sagen.

Danke schon jetzt für Hinweise in die richtige Richtung.

Viele Grüße,
Jochen

###################
Verzeichnisstruktur:

[ExtName]
-- [Classes]
---- [Domain]
------ [Model]
-------- BaseClass.php
-------- [Base]
---------- SubClassA.php
---------- SubClassB.php
------ [Repository]
-------- BaseClassRepository.php

###################
TypoScript-Setup von EXT:ExtName:

config.tx_extbase.persistence.classes {
\VendorName\ExtName\Domain\Model\BaseClass {
mapping {
tableName = tx_extname_domain_model_baseclass
recordType = \VendorName\ExtName\Domain\Model\BaseClass
}
subclasses {
\VendorName\ExtName\Domain\Model\Base\SubClassA = \VendorName\ExtName\Domain\Model\Base\SubClassA
\VendorName\ExtName\Domain\Model\Base\SubClassB = \VendorName\ExtName\Domain\Model\Base\SubClassB
}
}
\VendorName\ExtName\Domain\Model\SubClassA {
mapping {
tableName = tx_extname_domain_model_baseclass
recordType = \VendorName\ExtName\Domain\Model\SubClassA
}
}
\VendorName\ExtName\Domain\Model\SubClassB {
mapping {
tableName = tx_extname_domain_model_baseclass
recordType = \VendorName\ExtName\Domain\Model\SubClassB
}
}
}

plugin.tx_extname_extname {
view { ... }
settings { ... }
}

###################
TCA von tx_extname_domain_model_baseclass:

'types' => [
'\VendorName\ExtName\Domain\Model\Base\SubClassA' => [
'showitem' => 'record_type, name, ...'
],
'\VendorName\ExtName\Domain\Model\Base\SubClassB' => [
'showitem' => 'record_type, name, ...'
],
]

###################
SubClassA:

namespace VendorName\ExtName\Domain\Model\Base;

use VendorName\ExtName\Domain\Model\BaseClass;

class SubClassA extends BaseClass { ... }

###################
BaseClassController.php: (liefert nur Objekte des Typs BaseClass)

public function listAction() {
$records = $this->baseClassRepository->findAll();
$this->view->assign('records', $records);
}

###################

## Antworten

### [#2](https://www.typo3.net/d/126642-extbase-repository-liefert-keine-objekte-von-unterklassen-single-table-inheritance/2) · pstranghoener · 2018-03-23

Hey jochen,
ich pinne mal deine Fragen oben als "wichtig" mit an, in der Hoffnung es kann dir jemand anderes fix helfen.

Grüße
Philipp

### [#3](https://www.typo3.net/d/126642-extbase-repository-liefert-keine-objekte-von-unterklassen-single-table-inheritance/3) · jochen · 2018-03-27

Danke! :)

### [#4](https://www.typo3.net/d/126642-extbase-repository-liefert-keine-objekte-von-unterklassen-single-table-inheritance/4) · maik_tailor · 2018-06-07

Hi, ich hatte genau das gleiche Problem. Mir hat es geholfen, in die news-Extension zu gucken.
Ich habe dein Code nur überflogen, aber eine Sache, die mir sofort aufgefallen ist, ist der Identifier im record_type - ich hatte es anfangs auch so, aber wenn man mal im TCA unter config.tx_extbase.persistence.classes schaut, dann stehen dort die Vendor alle ohne vorangestelltes Backslash. Probiere es mal aus, bei mir hatte es komischerweise geholfen.

config.tx_extbase.persistence.classes {
VendorName\ExtName\Domain\Model\BaseClass {
mapping {
tableName = tx_extname_domain_model_baseclass
recordType = VendorName\ExtName\Domain\Model\BaseClass
}
subclasses {
VendorName\ExtName\Domain\Model\Base\SubClassA = VendorName\ExtName\Domain\Model\Base\SubClassA
VendorName\ExtName\Domain\Model\Base\SubClassB = VendorName\ExtName\Domain\Model\Base\SubClassB
}....

Viel Erfolg

---

Quelle: „Extbase-Repository liefert keine Objekte von Unterklassen (Single Table Inheritance)“, typo3.net, https://www.typo3.net/d/126642-extbase-repository-liefert-keine-objekte-von-unterklassen-single-table-inheritance
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
