我有User
与角色有多对多关系的实体。我试图实现乐观锁,一切正常,只是当我改变角色时,它不会改变版本(用户实体版本),这是正确的行为吗?
class User {
/**
* User's roles.
*
* @ORM\ManyToMany(targetEntity="Role")
*/
private $roles;
...
我有User
与角色有多对多关系的实体。我试图实现乐观锁,一切正常,只是当我改变角色时,它不会改变版本(用户实体版本),这是正确的行为吗?
class User {
/**
* User's roles.
*
* @ORM\ManyToMany(targetEntity="Role")
*/
private $roles;
...
Doctrine 2 的锁定机制不考虑关联。它们仅防止实体本身发生变化。恕我直言,这是意料之中的,因为它无法知道要包含哪些关联以及要忽略哪些关联。这不是您希望在所有关联中盲目发生的事情。
理论上,Doctrine 2 可以通过向关联映射添加一个选项来实现这一点,但目前根本不支持。
所以你有2个选择:
我没有尝试,但我认为这是正确的行为(因为刷新不修改用户实体)并且没有理由锁定用户实体 - 它没有改变。