Я пытаюсь изменить какой-то код с помощью спящего режима FullTextEntityManager.По сути, это работает в настоящее время, но я хотел бы ограничить результаты подмножеством записей в таблице (самой последней из данного типа).
Так, например, базовый запрос данных для поиска может быть чем-то вроде этих строк (только для демонстрации, я не анализировал это!)
SELECT name, address
FROM Persons p
WHERE p.name = sq.name
FROM
(SELECT name, max(datemodified)
FROM Persons
GROUP BY name) sq
В настоящее время код Java простовыбор из необработанной таблицы (по сути, это то, что я думаю, для опции forEntity)
FullTextEntityManager ftem = Search.getFullTextEntityManager(getEntityManager());
SearchFactory sf= ftem.getSearchFactory();
QueryContextBuilder qcb = sf.buildQueryBuilder();
QueryBuilder qb= qcb.forEntity(entityClass).get();
//processSearchExpression builds a lucene style full text search
org.apache.lucene.search.Query q= processSearchExpression();
FullTextQuery ftq= ftem.createFullTextQuery(q, entityClass);
Так что, по сути, я думаю, что я поместил основы там довольно точно.Что я не могу понять, так это как добавить подзапрос или что-то похожее, чтобы я мог просто запрашивать самые последние записи каждого типа?