假設(shè)我有實(shí)體:class UserEntity{ /** * @var integer * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="IDENTITY") */ private $id; /** * @var string * @ORM\Column(type="string") */ private $name; /** * @var string * @ORM\Column(type="string") */ private $email;// and contruct, getters and setters..}并在相應(yīng)的服務(wù)中:class UserService extends BaseService{ public function update($id, $data) { try { $user= $this->fetch($id); if (! $user instanceof UserEntity) { // throw respective exception; } $user->setName($data['name']); $user->setEmail($data['email']); $this->entityManager->flush($user); return $user; } catch (Exception $e) { throw $e; } }}如果有這樣的用戶:{ id: 1, name: jhon, email: jhon@domain.com}并且提供給服務(wù)的數(shù)據(jù)是:$id = 1;$data = [ 'name' => jhon, 'email => jhon@domain,com]那么,在這些情況下,避免對(duì)數(shù)據(jù)庫(kù)進(jìn)行不必要的查詢的最佳方法是什么?因?yàn)闆](méi)有必要調(diào)用 flush 方法。還是 Doctrine 內(nèi)部負(fù)責(zé)不做查詢?
在冪等情況下通過(guò)服務(wù)更新實(shí)體的最佳方式?
炎炎設(shè)計(jì)
2022-10-22 15:09:00