"Expected primary key field id for definition NameEntityDefinition not provided" bei insert

Hallo,

ich erstelle gerade in meinem Plugin eine eigene Entity, jedoch bekomme ich nun folgenden Fehler, wenn ich versuche neue Daten mittels “repository->create(…)” einzufügen:

“Expected primary key field id for definition PluginName\NameEntityDefinition not provided”

 

Die “id” scheint also nicht gesetzt zu sein? Mein Code für den Insert sieht etwa so aus:

$this->clientRepository->create(
        [[
          "propertyA" => $data['a'],
          "propertyB"=> $data['b']
        ]],
        Context::createDefaultContext()
);

Ich habe nun jedoch auch einmal versucht, eine ID mitzugeben, dies ändert jedoch auch nichts.

$this->clientRepository->create(
        [[
          "id" => $this->gen_uuid(),
          "propertyA" => $data['a'],
          "propertyB"=> $data['b']
        ]],
        Context::createDefaultContext()
);

Meine Tabellen-Migration enthält dabei den Primary Key “id”:

CREATE TABLE IF NOT EXISTS `plugin_fast_clients` (
  `id` varchar(255) NOT NULL,
  `propertyA` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `propertyB` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Was mache ich falsch, dass dieser Fehler auftritt?

Das Problem scheint in der Definition gewesen zu sein: Die Definition der ID muss 

(new IdField('id', 'id'))->addFlags(new PrimaryKey(), new Required()),

lauten. Ich hatte vorher jedoch nur 

(new IdField('id', 'id'))->addFlags(new PrimaryKey()),

genutzt