Почему действительно В спящем режиме, запрос имеет ошибку компиляции в IntelliJ?

Я имею, это В спящем режиме код:

Query q = session.createQuery("from MyTable where status = :status");

Это компилирует и хорошо работает..

Но в IntelliJ я сообщил об этой ошибке:

Не может разрешить выражение, не Может разрешить символ 'MyTable'

Почему IntelliJ жалуется??

18
задан Marcus Leon 2 February 2010 в 22:21
поделиться

1 ответ

Мне нравится ответ Ааронахта, но я бы сказал, что Rx и TPL решают разные проблемы. Частью добавленной команды TPL являются примитивы многопоточности и значительные усовершенствования в компоновочных блоках среды выполнения, таких как ThreadPool. И все, что вы перечисляете, построено поверх этих примитивов и функций среды выполнения.

Но TPL и Rx решают две разные задачи. TPL лучше всего работает, когда программа или алгоритм "тянет и ставит в очередь". Rx превосходит, когда программе или алгоритму необходимо "реагировать" на данные из потока (например, при вводе мыши или при получении потока связанных сообщений от конечной точки, например, WCF).

Концепция "единицы работы" из TPL необходима для выполнения такой работы, как файловая система, итерация по коллекции или обход иерархии, такой как организационная диаграмма. В каждом из этих случаев программист может объяснить общий объем работы, работа может быть разбита на части определенного размера (Задачи), и в случае выполнения вычислений по иерархии задачи могут быть "скованы" вместе. Таким образом, определенные типы работы предоставляют себя модели 'Task Hierarchy' TPL, и выгода с улучшений на сантехнику как отмена (посмотрите видео Канала 9 на CancellationTokenSource). TPL также имеет множество ручек для специализированных доменов, таких как обработка данных в режиме реального времени.

Rx будет то, что большинство разработчиков должны в конечном итоге использовать. Именно так приложения WPF могут "реагировать" на внешние сообщения, такие как внешние данные (поток сообщений IM клиенту IM) или внешние входные данные (например, пример перетаскивания мыши, связанный с Aaronaught). Под обложками Rx использует примитивы многопоточности из TPL/BCL, коллекции threadsafe из TPL/BCL и объекты среды выполнения, такие как ThreadPool. По моему мнению, Rx - это "высший уровень" программирования для выражения ваших намерений.

Сможет ли средний разработчик обернуть голову вокруг набора намерений, которые вы можете выразить с помощью Rx, еще предстоит увидеть.:)

Но я думаю, что следующие пару лет TPL против Rx будут следующими дебатами, такими как LINQ-to-SQL и Entity Framework. Существует два варианта API в одной области и они специализированы для различных сценариев, но перекрываются во многом. Но в случае TPL & Rx они фактически знают друг о друге, и есть встроенные адаптеры для создания приложений и использования обеих платформ вместе (например, подача результатов из цикла PLINQ в поток IObservable Rx). Для людей, которые не сделали никакого параллельного программирования есть тонна обучения, чтобы подняться на скорость.

Обновление: Я использовал как TPL, так и RxNet в своей обычной работе в течение последних 6 месяцев (из 18 месяцев с момента моего первоначального ответа). Мои мысли о выборе TPL и/или RxNet в службе WCF среднего уровня (корпоративная служба LOB): http://yzorgsoft.blogspot.com/2011/09/middle-tier-tpl-andor-rxnet.html

-121--927441-

Добавьте следующую команду в начало сценария:

SET VERIFY OFF

это позволит выполнять сценарии без проверки и, следовательно, может

Позже можно запросить DBA_ERRORS для получения всех ошибок и предупреждений в пакетах, представлениях и типах.

-121--1918119-

IntelliJ пытается проверить ваш запрос HQL внутри самой последовательности. Для этого его необходимо настроить для получения сведений о конфигурации гибернации, чтобы обеспечить наличие сопоставления для MyTable (это происходит во время выполнения, как известно - при выполнении!).

Проверьте раздел конфигурации гибернации в intelliJ для вашего проекта.

Возможно, есть способ отключить его, если это скорее помеха, чем помощь.

20
ответ дан 30 November 2019 в 05:51
поделиться
Другие вопросы по тегам:

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