Импорт javax.persistence невозможен.

В настоящее время я работаю над проектом, который требует EntityManager EntityManagerFacotry и Persistence каждый из пакета javax.persistence. Это похоже на службу базы данных, но текущий код не очень хорошо документирован. При поиске в google кажется, что должен быть xml файл, который поставляется вместе с этим, но нет ни одного из них. Я предполагаю, что мой вопрос заключается в том, как я могу избавиться от этих неразрешенных импортных данных? Должен ли я добавить еще одну банку в путь сборки? Кажется, что мне не нужно было, так как это было вокруг с 1,5.

Любая помощь очень ценится.

Ответы

Ответ 1

hibernate-distribution-3.6.10.Final\lib\jpa: добавьте эту банку, чтобы решить эту проблему. Он присутствует в папке lib внутри, где у вас есть папка jpa --- > внутри которой у вас есть hibernate-jpa-2.0-1.0.1.Final jar

Ответ 2

Да, вам, вероятно, понадобится добавить еще одну банку или зависимость

javax.persistence.* является частью Java Persistence API (JPA). Это всего лишь API, вы можете думать о нем как об интерфейсе. Существует множество реализаций JPA, и этот ответ дает очень хорошую проработку каждого из них, а также того, что использовать.

Если ваш javax.persistence.* Не может быть разрешен, вам нужно будет предоставить jar, который реализует JPA. Вы можете сделать это, либо загрузив его вручную (и добавив в свой проект), либо добавив объявление в инструмент управления зависимостями (например, Ivy/Maven/Gradle). Смотрите здесь для реализации EclipseLink (эталонной реализации) в репозитории Maven.

После этого ваш импорт должен быть решен.

Также смотрите здесь о том, что такое JPA. Xml, на который вы ссылаетесь, может быть persistence.xml, что объясняется на странице 3 ссылки.

При этом, вы можете просто указывать на неправильную целевую среду выполнения

Если я правильно помню, вам не нужно предоставлять реализацию JPA, если вы развертываете ее на сервере приложений JavaEE, таком как JBoss. См. Здесь "Обратите внимание, что вам обычно это не нужно, когда вы развертываете свое приложение на сервере приложений Java EE 6 (например, JBoss AS 6)". Попробуйте изменить целевую среду выполнения вашего проекта.

Если ваш локальный проект настроен так, чтобы он указывал на Tomcat, в то время как ваше удаленное хранилище предполагает использование сервера JavaEE, это может иметь место. См. Здесь разницу между Tomcat и JBoss.

Изменение: я изменил свой проект, чтобы указать на GlassFish вместо Tomcat и javax.persistence.* нормально без какой-либо явной зависимости JPA.

Ответ 3

Если кто-то использует Maven, вам нужно добавить зависимость в файле POM.XML. Последняя версия этой публикации приведена ниже:

<dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.1-api</artifactId>
    <version>1.0.0.Final</version>
</dependency>

Ответ 4

Я столкнулся с той же самой проблемой и понял, что, поскольку я использую весеннюю загрузку, все, что мне нужно было сделать, чтобы решить эту проблему, это добавить следующую зависимость:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

Ответ 5

Мое решение состояло в том, чтобы выбрать профили maven, которые я определил в моем pom.xml, в котором я объявлял зависимости hibernate.

CTRL + ALT + P в eclipse.

В моем проекте я столкнулся с этой проблемой и многими другими, потому что в моем пом у меня разные профили для поддержки Glassfish 3, Glassfish 4, а также WildFly, поэтому у меня есть разные версии Hibernate для каждого контейнера, а также разные цели компиляции Java и т.д. на. Выбор активных профилей maven разрешил мою проблему.

Ответ 6

Если вы используете Hibernate в качестве реализации JPA, и вы не используете Maven/ Gradle, проще всего загружать весь пакет вместо jar файла по одному.

Перейдите http://hibernate.org/orm/downloads/ и загрузите последнюю библиотеку, извлеките банку из папки required.

Ответ 7

В новых jiber файлах hibernate вы можете найти требуемый jpa файл в "hibernate-search-5.8.0.Final\dist\lib\provide\hibernate-jpa-2.1-api-1.0.0.Final". Вы должны добавить этот JAR файл в путь сборки Java вашего проекта. Это, скорее всего, решит проблему.

Ответ 8

Если вы используете gradle с пружинной загрузкой и пружинным JPA, добавьте приведенную ниже зависимость в файл build.gradle

зависимости {группа компиляции: 'org.springframework.boot', имя: 'spring-boot-starter-data-jpa', версия: '2.1.3.RELEASE'

}