Задать вопрос

Возможно ли в Doctrine создать сущность без уникальных полей?

Возможно ли в Doctrine создать сущность без уникальных полей?

/**
 * @Table(name="requests")
 * @Entity
 */
class Request extends \Data\Orm\Object
{
    /** @Column(type="integer") */
	protected $date;
	
    /** @Column(type="string") */
	protected $ip;
	
    /** @Column(type="string") */
	protected $query;
	
    /** @Column(type="string") */
	protected $user_agent;
}


Для примера сущность для логирования запросов к серверу, на нем хорошо видно суть проблемы.

Если запустить, то получим:
No identifier/primary key specified for Entity "\Entities\Request" sub class of "Data\Orm\Object". Every Entity must have an identifier/primaey.

Можно конечно добавить полям ID и DATE, анотацию @Id , что бы сущность заработала. Но это не правильный подход, если сделать два запроса в течении секунды, то получим Exception нарушения уникальности.

Я понимаю, что выбрать конкретную сущность без уникального поля невозможно. Цель запись запросов, и выбор. Никаких операций с конкретной записью не требуется.

Возможно это нарушение основ ORM, но все же интересно, возможно ли это, без заведения лишнего столбца id?
  • Вопрос задан
  • 276 просмотров
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Можно конечно добавить полям ID и DATE, анотацию @Id

а зачем вам тут составной первичный ключь? ID достаточно.

Вообще по определению у сущности должен быть ID, иначе это уже не сущность.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы