sql >> Databasteknik >  >> RDS >> Mysql

Symfony2 skapar och behåller entitetsrelationer

När du skapar två entiteter med en en-till-en-relation måste båda entiteterna bevaras antingen explicit eller genom att använda kaskadbeständig på ena sidan av relationen. Du måste också uttryckligen ange båda sidor av relationen.

Doktrin - att fungera med föreningar - Transitiv uthållighet / Cascade Operations

Stater:

Doktrin - Arbeta med föreningar - Etablering Föreningar

Stater:

Utan att kaskad kvarstår behöver du något sånt här:

$skin = new Skin();
$email = new Email();
$skin->setEmail($email);
$email->setSkin($skin);
$em->persist($email);
$em->persist($skin);
$em->flush();

Med cascade persist på hudsidan av relationen kan du utelämna $em->persist($skin) . Observera att om du kaskader kvarstår, skulle du vanligtvis också ta bort:

 * @ORM\OneToOne(targetEntity="MediaparkLt\UserBundle\Entity\Email", inversedBy="skin", cascade={"persist", "remove"})



  1. Hur man mappar en sträng till DB-sekvens i Hibernate

  2. JPA-karta MySQL json-typ, fick förvrängd sträng

  3. Kan inte installera pg gem på Windows

  4. SQL-fråga för att hitta post med ID som inte finns i en annan tabell