Использование полнотекстового запроса MySQL в JPA без использования Hibernate-search, Solr и eclipse-link - PullRequest
0 голосов
/ 28 мая 2019

В настоящее время я использую приведенную ниже конфигурацию моего проекта maven. Я хочу использовать полнотекстовый поисковый запрос в своем коде с использованием JPA (JPQL).

Я попробовал это предложение, но не смог найти maven-зависимость для MySQL5Dialect, которая должна быть совместима с моей конфигурацией ниже.

Как использовать полнотекстовый поиск MySQL из JPA

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.4.0.GA</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>3.1.0.GA</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.3.1.GA</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>3.4.0.GA</version>

1 Ответ

0 голосов
/ 28 мая 2019

Я создал собственный класс Dialect

открытый класс FullTextSearch extends MySQL5InnoDBDialect {

public FullTextSearch(){
    super();
    registerFunction("match", new SQLFunctionTemplate(new DoubleType(),"match(?1) against (?2 in boolean mode)"));
}

}

В коде я вызываю этот метод

 Query namedQuery = em.createQuery("select user from User user " +
                "where match(user.familyName,LOWER(CONCAT(:searchName,'*'))) > 0 " +
                "order by user.familyName");

Я добавляю конфигурацию в файл persistence.xml

<property name="hibernate.dialect" value="textsearch.FullTextSearch"/>

Но я получаю сообщение об ошибке

WebServiceException: org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException[AbstractEntityManagerImpl.java:614] threw javax.persistence.PersistenceException (org.hibernate.exception.SQLGrammarException: could not execute query)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...