0

我有两个实体(请注意,省略了不相关的方法和属性):

/**
* @Entity
*/
class Manager {

   /**
    * @Column(type="integer")
    */
    private $referencesCount;

    /**
    * @OneToMany(targetEntity="Reference", mappedBy="manager")
    */
    private $references;

    public functions increaseReferenceCount() {
        $this->referencesCount++;
    }

     // other properties and methods
}


/**
* @Entity
* @HasLifecycleCallbacks
*/
class Reference {

    /**
    * @ManyToOne(targetEntity="Manager", inversedBy="references")
    * @JoinColumn(nullable=false)
    */
    private $manager;

    /**
    * @PostPersist
    */
    public function updateManagerReferenceCount() {
        $this->manager->increaseReferenceCount()
    }

     // other properties and methods
}

经理可以有许多参考。一份参考完全属于一位经理。我的模型应该针对查询进行优化,所以为了避免昂贵的连接(Manager 有更多的关联),我添加到 Manager 模型的 $referencesCount 属性,你猜对了,它保存了它的引用数。新的引用被持久化后,$referencesCount 应该增加。但现在不是。我错过了什么?(我已经厌倦了 cascade={"all"} 但它对我不起作用)

4

1 回答 1

2

您应该添加传递持久性

cascade={"all"}

Reference实体(不仅为Manager)。

并替换@PostPersist@PrePersist.

于 2013-03-23T15:15:03.170 回答