Как использовать оператор AND (&&) в OQL в MAT Eclipse

Я работаю над настройкой производительности приложения java rmi и использую OQL для выполнения следующего запроса:

select tpoint.host.value.toString() from sun.rmi.transport.tcp.TCPEndpoint tpoint
where (tpoint.host!=null && tpoint.csf!=null)

Приведенный выше запрос успешно компилируется на JVisualVM с некоторыми записями, за которыми следует эта ошибка: -

Слишком много результатов. Пожалуйста, уточните запрос.

Тот же запрос не выполняется в Eclipse-MAT.

После удаления && tpoint.csf!=null из above query он отлично компилируется в Eclipse-MAT. Также это занимает очень меньше времени по сравнению с JVisualVM и отображает все записи.

Я не могу найти правильный синтаксис для использования && operator в Eclipse-MAT.

Столкнувшись с трудностями при поиске хороших ссылок OQL для Eclipse-MAT, хорошие ссылки приветствуются.

Заранее спасибо...


person mogli    schedule 26.06.2012    source источник


Ответы (2)


Вместо оператора && вы можете использовать 'и' для выполнения комбинированного запроса. Кажется, что MAT поддерживает только «и», «или», «не», а не «&&», «||». '^'.

Ниже приведен рабочий запрос OQL в MAT.

SELECT tpoint.host.value.toString() FROM sun.rmi.transport.tcp.TCPEndpoint tpoint WHERE ((tpoint.host != null) and (tpoint.csf != null))
person Y.Huang    schedule 19.07.2012

Существуют синтаксические различия между MAT-Eclipse OQL и JVisualVM OQL.

На момент написания этого ответа можно было писать более сложные запросы в JVisualVM OQL (AFAIK) по сравнению с MAT-Eclipse.

Единственным недостатком является то, что время ответа запросов JViualVM очень велико, и ответ не включает все записи.

Будет здорово, если разработчики MAT предоставят в справке хорошую документацию запросов MAT OQL (групповые, подзапросы, операторы манипулирования строками).

person mogli    schedule 27.06.2012