Регистрация  |  Вход

Query 'WHERE name in :LISTofMyDataObject.name' не проходит

Простая ситуация:

собрал дату в спец объект, где есть стринговое поле name, вот так:

спецОбъект.name = 'something'

затем все получившиеся спецОбъекты собрал в List спецОбъектов LISTofMyDataObject.

думал, можно вот так можно использовать в запросе:

'..... WHERE name IN :LISTofMyDataObject.name'

а нет, не получается.

пришлось все поля name из спецОбъектов выбрать в массив стрингов, и вот его вставлять в запрос...

может это как-то проще решается?

Простая ситуация:

собрал дату в спец объект, где есть стринговое поле name, вот так:

спецОбъект.name = 'something'

затем все получившиеся спецОбъекты собрал в List  спецОбъектов LISTofMyDataObject.

думал, можно вот так можно использовать в запросе:

'..... WHERE name IN :LISTofMyDataObject.name'

 а нет, не получается.

пришлось все поля name из спецОбъектов выбрать в массив стрингов, и вот его вставлять в запрос...

может это как-то проще решается?

Выбирать поля в List<String> например и потом использовать этот лист в IN это нормальная практика. Да, не очень красиво, но работает
Как вариант можешь попробовать nested SOQL например так:

'..... WHERE name IN (SELECT Name FROM MyDataObject)

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

Выбирать поля в List<String> например и потом использовать этот лист в IN это нормальная практика. Да, не очень красиво, но работает :)

Как вариант можешь попробовать nested SOQL например так:
[code]'..... WHERE name IN (SELECT Name FROM MyDataObject)[/code]
Вот только не помню будет это работать или нет :) Возможно так можно выбирать только по ID, но вот вспомнить точно не могу.

спасибо.

MyDataObject - это просто объекты, не sObject.

Но с другой стороны:
а можем ли мы Кверить в SOQL стиле Лист sObjectов, созданный прямо в коде (имеется ввиду не кверить что-то из БД)?
а можем ли мы Кверить в стиле ".find().where()" (забыл как этот стиль называется) Лист sObjectов , созданный прямо в коде??

И продолжаем мысль вспомнив LINQ:
а можем ли мы Кверить в SOQL стиле Лист простых Objectов, созданный прямо в коде???
а можем ли мы Кверить в стиле ".find().where()" Лист простых Objectов????

Про nested SOQL - уже опробовал nested запрос по связи__r, а вот nested запрос как условие для другого запроса - еще не пробовал...

спасибо.

MyDataObject - это просто объекты, не sObject.

Но с другой стороны: 
а можем ли мы Кверить в SOQL стиле Лист sObjectов, созданный прямо в коде (имеется ввиду не кверить что-то из БД)?
а можем ли мы Кверить в стиле ".find().where()" (забыл как этот стиль называется) Лист sObjectов , созданный прямо в коде??

И продолжаем мысль вспомнив LINQ: 
а можем ли мы Кверить в SOQL стиле Лист [b] простых[/b] Objectов, созданный прямо в коде???
а можем ли мы Кверить в стиле ".find().where()" Лист  [b]простых[/b] Objectов????

Про nested SOQL - уже опробовал nested запрос по связи__r, а вот nested запрос как условие для другого запроса  - еще не пробовал...

а можем ли мы Кверить в SOQL стиле Лист простых Objectов, созданный прямо в коде???
а можем ли мы Кверить в стиле ".find().where()" Лист простых Objectов????

Врядли. SOQL и SOSL запросы подразумевают работу с Базой данных,

а Лист объектов - это всего лишь List (тип коллекции) в котором нет фукнционала для поиска в содержимом на подобии .find или .where

[quote]а можем ли мы Кверить в SOQL стиле Лист простых Objectов, созданный прямо в коде???
а можем ли мы Кверить в стиле ".find().where()" Лист простых Objectов????[/quote]

Врядли. SOQL и SOSL запросы подразумевают работу с Базой данных, 

а Лист объектов - это всего лишь List (тип коллекции) в котором нет фукнционала для поиска в содержимом на подобии .find или .where