public function create($params = [], ClassMetadata $metadata = null)
{
$params = new ArrayObject($params);
$builder = $this->getEntityBuilder();
/** @var Entity $entity */
$entity = $builder->getEntity();
$preEventArgs = new HydrationEvent($params, ['entity' => $entity, 'repository' => $this]);
$this->event()->dispatch(StorageEvents::PRE_HYDRATE, $preEventArgs);
$builder->create($params, $entity);
$postEventArgs = new HydrationEvent($params, ['entity' => $entity, 'repository' => $this]);
$this->event()->dispatch(StorageEvents::POST_HYDRATE, $postEventArgs);
return $entity;
}