Доктрина 2 - Подзапрос как столбец результата [дубликат]

Если вы хотите сохранить и получить свой пользовательский объект в качестве ключа в Map, тогда вы всегда должны переопределять equals и hashCode в своем пользовательском объекте. Например:

Person p1 = new Person("A",23);
Person p2 = new Person("A",23);
HashMap map = new HashMap();
map.put(p1,"value 1");
map.put(p2,"value 2");

Здесь p1 & amp; p2 будет считать, что только один объект и map размер будут только 1, потому что они равны.

2
задан Sharif Mamun 13 June 2015 в 17:21
поделиться

1 ответ

Во-первых, подзапросы в DQL невозможны. См. Выбор из подзапроса в DQL

Во-вторых, вы помещаете вычисляемый SQL из языка запросов Doctrine (DQL) в подзапрос. Это не работает, поскольку база данных не может найти столбец из-за того, что DQL префиксные символы / числовые значения столбцам.

Это значит, что сущности могут корректно отображаться при использовании DQL.

Вам нужно будет создать подзапрос NOT с использованием языка DQL (прекратите использование этого построителя запросов, не уверены, есть ли он, который строит необработанный SQL).

3
ответ дан Community 26 August 2018 в 05:13
поделиться
Другие вопросы по тегам:

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