在Doctrine中刷新时可以更改sql执行顺序。
Mysql有一个众所周知的错误。该语句可能会导致死锁
INSERT INTO operations(id, user_id) VALUES(null, 123);
UPDATE users SET user_name = 'name' WHERE id = 123;
Deadlock found when trying to get lock; try restarting transaction
所以,我在冲洗时要更改顺序,先更新然后再插入。我该怎么做?
文档说订单是预定义的
1)所有实体插入2)所有实体更新3)所有集合 删除4)所有集合更新5)所有实体删除
https://www.doctrine-project.org/api/orm/2.7/Doctrine/ORM/UnitOfWork.html
但是如何更改此顺序?
答案 0 :(得分:0)
无法更改。如果您遇到此问题,则需要创建自己的交易。然后刷新更新,然后手动刷新插入。