Сущности, не обнаруживаемые при использовании упакованного поставщика сохранения Hibernate JPA - PullRequest
0 голосов
/ 02 января 2019

Я развертываю свое веб-приложение на локальном сервере wildfly-11.0.0.Final.Однако, Wildfly предоставляет свои собственные модули hibernate и jpa, которые я не хочу использовать.Я хочу использовать jpa-баночки, прилагаемые к моему приложению.

Как описано в https://docs.jboss.org/author/display/WFLY10/JPA+Reference+Guide#JPAReferenceGuide-PackagingtheHibernateJPApersistenceproviderwithyourapplication, я добавил строку

<property name="jboss.as.jpa.providerModule" value="application"/>

в мою настойчивость.xml

Теперь, однако, мои энтиты (аннотированные @Entity) больше не обнаруживаются, и я должен явно указать их в своем файле persistence.xml, например

<class>com.mycompany.mywebapp.Actor</class>

Есть ли способ исправить это?

Я пытался

<jar-file></jar-file>

и

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

безуспешно.

Мой файл persistence.xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
  <persistence-unit name="com.mycompany_mywebapp_war_1.0PU" transaction-type="JTA">
    <jta-data-source>java:/jboss/sakila</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="jboss.as.jpa.providerModule" value="application"/>
    </properties>
  </persistence-unit>
</persistence>

Редактировать:

Я использую hibernate 5.3.7.Final, который реализует jpa 2.2.

Мой сервер wildfly предоставляет hibernate 5.1.10.Final с jpa 2.1.

Edit 2:

Я заметил, что, хотя версия hibernate теперь 5.3.7. Наконец, jpa предоставлен wildfly (версия спецификации 2.1) все еще используется, что может быть причиной этой проблемы.

Я попытался отключить модули wildfly в jboss-deploy-structure.xml:

<jboss-deployment-structure>
    <deployment>
        <exclusions>
            <module name="org.hibernate" />
            <module name="javax.persistence.api" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

Однако теперь я сталкиваюсь со следующей ошибкой:

Cannot upload deployment: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"webapp-1.0.war\".FIRST_MODULE_USE" => "WFLYSRV0153: Failed to process phase FIRST_MODULE_USE of deployment \"webapp-1.0.war\" Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYJPA0019: Could not deploy application packaged persistence provider 'org.hibernate.jpa.HibernatePersistenceProvider' Caused by: java.lang.ClassCastException: class org.hibernate.jpa.HibernatePersistenceProvider"}}

Редактировать 3:

Чтобы проверить, является ли это причиной моей первоначальной проблемы, я вручную заменилjpa jar.К сожалению, это не решает мою проблему.

В любом случае, я хотел бы знать, как я могу решить проблему с тем, что мой упакованный jpa jar не используется, и как заставить мои сущности автоматически обнаруживаться снова.Есть намеки?

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