# Persistieren einer Entity führt zu Exception bei anschließender Artikelanlage via Resource

**URL:** <https://forum.shopware.com/t/persistieren-einer-entity-fuhrt-zu-exception-bei-anschliessender-artikelanlage-via-resource/41186>\
**Category:** Programmierung\
**Created:** [8. November 2016 um 09:51 UTC](https://forum.shopware.com/t/persistieren-einer-entity-fuhrt-zu-exception-bei-anschliessender-artikelanlage-via-resource/41186 "2016-11-08T09:51:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Synonymous](https://avatars.discourse-cdn.com/v4/letter/s/57b2e6/32.png) [@Synonymous](https://forum.shopware.com/u/Synonymous)\
**Post date:** [8. November 2016 um 09:51 UTC](https://forum.shopware.com/t/persistieren-einer-entity-fuhrt-zu-exception-bei-anschliessender-artikelanlage-via-resource/41186/1 "2016-11-08T09:51:20Z")

</div>

Schönen guten Morgen,

Ich bin über folgendes Problem gestolpert und finde dafür keine Erklärung bzw. Lösung:  
Legt man über die **Models eine neue Unit Entity** an, persistiert sie und versucht man danach einen **neuen Artikel über die Artikelresource** anzulegen, führt das zu einer **ORM Exception** weil die **ArticleID im ArticleDetail NULL** ist. **Persistiert man die Unit Entity NICHT** , dann **klappt die Anlage danach wunderbar** - die Unit ist aber natürlich nicht persistiert.

Ich habe das ganze mal in einem kleinen Testbeispiel abgebildet (ist so getestet und zeigt den genannten Fehler):

```
$em = $this->getContainer()->get('models');

// Crate unit
$unit = new Shopware\Models\Article\Unit();
$unit->setUnit('m');
$unit->setName('Meter');

// @TODO Why does persist/flush of unit lead to an articleId NULL when article is crated via resource bellow???
$em->persist($unit);
$em->flush($unit);

// Build article data array
$data = array(
    'name' => 'Testartikel',
    'taxId' => 1,
    'description' => 'Description',
    'descriptionLong' => 'Description',
    'active' => true,
    'mainDetail' => array(
        'number' => '4711',
        'active' => true,
        'inStock' => 20,
        'unitId' => $unit->getId(),
        'ean' => '12345678',
    ),
);

$articleResource = Components\Api\Manager::getResource('article');
$articleResource->create($data);

```

Ohne persist() und flush() funktioniert alles wunderbar.

Hier die Exception im Detail:

```
[Shopware\Components\Api\Exception\OrmException]                                                                                                                                                         
  An exception occurred while executing 'INSERT INTO s_articles_details (articleID, unitID, ordernumber, suppliernumber, kind, additionaltext, active, instock, stockmin, weight, width, length, height,   
  ean, purchaseprice, position, minpurchase, purchasesteps, maxpurchase, purchaseunit, referenceunit, packunit, shippingfree, releasedate, shippingtime) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?  
  , ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [null, 53, "4711", null, 1, null, 1, 20, null, null, null, null, null, "12345678", 0, 0, 1, null, null, null, null, null, 0, null, null]:                
  SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'articleID' cannot be null   

```

Vielleicht gibt es hier den ein oder anderen Doctrine Profi&nbsp;der mir einen Tipp geben kann!?

Danke Euch vorweg,  
LG  
Synonymous

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [8. November 2016 um 16:47 UTC](https://forum.shopware.com/t/persistieren-einer-entity-fuhrt-zu-exception-bei-anschliessender-artikelanlage-via-resource/41186/2 "2016-11-08T16:47:32Z")

</div>

Hallo @Synonymous‍,

wie ich verstehe, das Problem gehört etwas mit Transaction conflict oder Comment order.

ich weiß nicht genau.

aber die Lösung ist clear funktion benutzen:

```
$em->persist($unit);
$em->flush($unit);
$em->clear();

```

Viele Grüße,

Ahmad.

---

<div class="post-metadata">

**Author:** ![hhmarco](https://avatars.discourse-cdn.com/v4/letter/h/e56c9b/32.png) [@hhmarco](https://forum.shopware.com/u/hhmarco)\
**Post date:** [9. November 2016 um 21:51 UTC](https://forum.shopware.com/t/persistieren-einer-entity-fuhrt-zu-exception-bei-anschliessender-artikelanlage-via-resource/41186/3 "2016-11-09T21:51:24Z")

</div>

clear habe ich bisher nicht benutzt, ich mache es so&nbsp;

```
 $em-\>refresh($unit);

```

Gruß

Marco
