假设我有实体:
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..
}
并在相应的服务中:
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
}
并且提供给服务的数据是:
$id = 1;
$data = [
'name' => jhon,
'email => jhon@domain,com
]
那么,在这些情况下,避免对数据库进行不必要的查询的最佳方法是什么?因为没有必要调用 flush 方法。还是 Doctrine 内部负责不做查询?
繁星淼淼