Почему IntelliJ не может найти именованные запросы на основе Hibernate и персистентности. xml? - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь перейти с Eclipse на IntelliJ с моим приложением. Я использую Hibernate и имею соответствующий файл постоянства. xml для конфигурации. Большинство вещей работает нормально, кроме именованных запросов, которые я определил.

Если я пытаюсь запустить приложение, будет выдано следующее исключение

java.lang.IllegalArgumentException: No query defined for that name [namedQuery]
    at org.hibernate.internal.AbstractSharedSessionContract.buildQueryFromName(AbstractSharedSessionContract.java:892)
    at org.hibernate.internal.AbstractSharedSessionContract.createNamedQuery(AbstractSharedSessionContract.java:990)
    at org.hibernate.internal.AbstractSessionImpl.createNamedQuery(AbstractSessionImpl.java:23)
    at com....

Постоянство. xml выглядит как следующие

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">
    <persistence-unit name="com...">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
            <property name="hibernate.show_sql" value="false" />
            <property name="hibernate.max_fetch_depth" value="3"/>
            <property name="hibernate.connection.autocommit" value="false"/>
            <property name="hibernate.connection.provider_class" value="org.hibernate.hikaricp.internal.HikariCPConnectionProvider" />            
            <property name="hibernate.transaction.jta.platform" value="JtaPlatform" />
            <property name="hibernate.hikari.connectionTimeout" value="30000" />
            <property name="hibernate.hikari.minimumIdle" value="1" />
            <property name="hibernate.hikari.maximumPoolSize" value="50" />
            <property name="hibernate.hikari.idleTimeout" value="300000" />
            <property name="hibernate.connection.url" value="jdbc:..."/>            
        </properties>
    </persistence-unit>
</persistence>

Я уже пытался установить различные свойства, такие как

<property name="packagesToScan" value="com.package.**"/>

и

<property name="hibernate.archive.autodetection" value="class, hbm"/>.

Все мои объекты помечены @Entity, @Table и @NamedQueries.

Обратите внимание, что не вариант для меня, добавить <class> тег к постоянству. xml, потому что я не хочу, чтобы такие усилия возникали каждый раз, когда я добавляю новую сущность, а в Eclipse она работает без коробки.

THX!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...