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

Возможно ли в 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?
  • Вопрос задан
  • 290 просмотров
Подписаться 2 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Можно конечно добавить полям ID и DATE, анотацию @Id

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽