В приложении Spring 3 контроллер вызывает JpaCollectorManager с вызовами JpaCollectorInfoDao для получения списка, который определяется встроенным запросом.Запрос вызывает 2 отдельные таблицы, которые используют sql и jpql, потому что мне нужно использовать функцию postgresql, не реализованную в jpql.Когда контроллер пытается подать список, я получаю следующее сообщение об ошибке:
Исключение [EclipseLink-6007] (Eclipse Persistence Services - 2.1.2.v20101206-r8635): org.eclipse.persistence.exceptions.QueryException Исключение Описание: отсутствует дескриптор для [CollectorInfo].
Запрос: ReadAllQuery (referenceClass = CollectorInfo sql = "выбрать различное ON (col.collector_id, pst.process_source_type) col. *, pst.process_source_timestamp, pst.type из from.pst.typeexecute_schema.collector col join join execute_schema.process_set pst для pst.collector_id = col.collector_id упорядоченный по col.collector_id, pst.process_source_type, pst.process_source_timestamp desc ")
Контроллер Java имеет следующий вызов:
List<CollectorInfo> ps = this.collectorInfoManager.getLatestCollectorInfo();
JpaCollectorInfoManager.java имеет следующее:
public List<CollectorInfo> getLatestCollectorInfo()
{
return collectorInfoDao.getLatestCollectorInfo();
}
JpaCollectorInfoDao.java:
@Override
@Transactional
public List<CollectorInfo> getLatestCollectorInfo() {
Query query = entityManager.createNativeQuery( ( "select distinct ON ( col.collector_id," +
"pst.process_source_type ) " +
"col.*," +
"pst.process_source_timestamp," +
"pst.process_source_type " +
"from perform_schema.collector col " +
"join perform_schema.process_set pst " +
"on pst.collector_id = col.collector_id " +
"order by col.collector_id, " +
"pst.process_source_type," +
"pst.process_source_timestamp desc " ),
CollectorInfo.class );
return ( (List<CollectorInfo>) query.getResultList() );
}
Классу CollectorInfo не определен @Entity.Если я устанавливаю определенную @Entity, то это говорит мне, что таблица не может быть разрешена (что является правильным, поскольку нет фактической таблицы).Я перепробовал все виды перестановок и, похоже, не могу сделать эту игольную нить.