Make properties cascade=remove for Character and Module
This commit is contained in:
@@ -45,9 +45,9 @@ class Character implements CharacterInterface, CreateableInterface
|
||||
private $health = 10;
|
||||
/** @Column(type="integer", options={"default":1})/ */
|
||||
private $level = 1;
|
||||
/** @OneToMany(targetEntity="CharacterProperty", mappedBy="owner", cascade={"persist"}) */
|
||||
/** @OneToMany(targetEntity="CharacterProperty", mappedBy="owner", cascade={"persist", "remove"}) */
|
||||
private $properties;
|
||||
/** @OneToOne(targetEntity="CharacterViewpoint", mappedBy="owner", cascade={"persist"}) */
|
||||
/** @OneToOne(targetEntity="CharacterViewpoint", mappedBy="owner", cascade={"persist", "remove"}) */
|
||||
private $viewpoint;
|
||||
/**
|
||||
* @ManyToMany(targetEntity="MessageThread", inversedBy="participants", cascade={"persist"})
|
||||
|
||||
@@ -16,10 +16,10 @@ use LotGD\Core\Tools\Model\Properties;
|
||||
class CharacterProperty
|
||||
{
|
||||
use Properties;
|
||||
|
||||
/** @Id @ManyToOne(targetEntity="Character") */
|
||||
|
||||
/** @Id @ManyToOne(targetEntity="Character", inversedBy="properties") */
|
||||
private $owner;
|
||||
|
||||
|
||||
/**
|
||||
* Returns the owner
|
||||
* @return \LotGD\Core\Models\Character
|
||||
@@ -28,7 +28,7 @@ class CharacterProperty
|
||||
{
|
||||
return $this->owner;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the owner
|
||||
* @param \LotGD\Core\Models\Character $owner
|
||||
|
||||
@@ -30,7 +30,7 @@ class Module implements SaveableInterface
|
||||
/** @Column(type="datetime") */
|
||||
private $createdAt;
|
||||
|
||||
/** @OneToMany(targetEntity="ModuleProperty", mappedBy="owner", cascade={"persist"}) */
|
||||
/** @OneToMany(targetEntity="ModuleProperty", mappedBy="owner", cascade={"persist", "remove"}) */
|
||||
private $properties;
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,8 +17,8 @@ class ModuleProperty
|
||||
{
|
||||
use Properties;
|
||||
|
||||
/** @Id @ManyToOne(targetEntity="Module")
|
||||
* @JoinColumn(referencedColumnName="library")
|
||||
/** @Id @ManyToOne(targetEntity="Module", inversedBy="properties")
|
||||
* @JoinColumn(name="owner", referencedColumnName="library")
|
||||
*/
|
||||
private $owner;
|
||||
|
||||
|
||||
@@ -67,5 +67,15 @@ class ModuleTest extends CoreModelTestCase
|
||||
->getQuery()->getSingleScalarResult());
|
||||
|
||||
$this->assertSame(6, $total);
|
||||
|
||||
// test cascading removes
|
||||
$module->delete($em);
|
||||
|
||||
$total = intval($em->createQueryBuilder()
|
||||
->from(ModuleProperty::class, "u")
|
||||
->select("COUNT(u.propertyName)")
|
||||
->getQuery()->getSingleScalarResult());
|
||||
|
||||
$this->assertSame(0, $total);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@ modules:
|
||||
createdAt: "2016-05-01"
|
||||
module_properties:
|
||||
-
|
||||
owner_id: 'lotgd/tests'
|
||||
owner: 'lotgd/tests'
|
||||
propertyName: "test"
|
||||
propertyValue: 's:5:"hallo";'
|
||||
|
||||
Reference in New Issue
Block a user