Как использовать полнотекстовый поиск MySQL из JPA
Я хочу использоватьПолнотекстовый поиск MySQL функции с использованием JPA, без необходимости использовать собственный запрос.
Я использую EclipseLink, который имеет функцию для поддержки собственных команд SQL:FUNC, Тем не менее, примеры помощи показывают только то, как это используется с простыми функциями MySQL. Моя лучшая попытка заставить его работать с MATCH & AGAINST заключается в следующем:
@PersistenceContext(name="test")
EntityManager em;
Query query = em.createQuery("SELECT person FROM People person WHERE FUNC('MATCH', person.name) FUNC('AGAINST', :searchTerm)");
...
query.getResultList();
Что дает следующее исключение:
Caused by: NoViableAltException(32@[()* loopback of 822:9: (m= MULTIPLY right= arithmeticFactor | d= DIVIDE right= arithmeticFactor )*])
at org.eclipse.persistence.internal.libraries.antlr.runtime.DFA.noViableAlt(DFA.java:159)
at org.eclipse.persistence.internal.libraries.antlr.runtime.DFA.predict(DFA.java:116)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.arithmeticTerm(JPQLParser.java:4557)
... 120 more
Я открыт для альтернатив, кроме использования метода FUNC.
Я использую EJB 3 и EclipseLink 2.3.1.