我有两个实体(注意省略了不相关的方法和属性):
/**
* @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
}
经理可以有很多参考资料。 One Reference完全属于一个Manager。我的模型应该针对查询进行优化,以避免昂贵的连接(Manager有更多的关联)我添加到Manager模型$ referencesCount属性,你猜对了,它保存了它的引用数。持久保存新引用后,应增加$ referencesCount。但现在却不是。我错过了什么? (我已经厌倦了机智cascade = {“all”}但它对我不起作用)
答案 0 :(得分:2)
cascade={"all"}
到Reference
实体(不仅适用于Manager
)。
将@PostPersist
替换为@PrePersist
。