Исправьте путь к классу вашего приложения, чтобы он содержал одну совместимую версию org.hibernate.internal.SessionFactoryImpl - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь подключить базу данных MongoDB через Hibernate с Spring-Boot. При попытке подключиться к MongoDB я получаю сообщение об ошибке ниже. Пожалуйста, помогите мне подключиться через спящий режим. В моем build.gradle у меня есть только зависимость "hibernate-ogm-mongodb".

Gradle:

compile group: 'org.hibernate.ogm', name: 'hibernate-ogm-mongodb', version: '5.4.1.Final'

постоянство. xml:

<?xml version="1.0"?>
<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="MyMongoDB"
        transaction-type="JTA">
        <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
        <properties>
            <property name="hibernate.ogm.datastore.provider"
                value="MONGODB" />
            <property name="hibernate.ogm.datastore.database"
                value="testdb" />
            <property name="hibernate.ogm.datastore.host"
                value="localhost" />
            <property name="hibernate.ogm.datastore.port"
                value="27017" />
            <property name="hibernate.ogm.datastore.create_database"
                value="true" />
        </properties>
    </persistence-unit>
</persistence>

Файл конфигурации:

@Bean
public EntityManagerFactory createEntityManagerFactory() {
    EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("MyMongoDB");
    return entityManagerFactory;
}

Описание: Была предпринята попытка вызвать метод, который не существует. Попытка была сделана из следующего местоположения:

org.hibernate.ogm.boot.impl.OgmSessionFactoryBuilderImpl.build(OgmSessionFactoryBuilderImpl.java:56)

Следующий метод не существовал:

void org.hibernate.internal.SessionFactoryImpl.<init>(org.hibernate.boot.spi.BootstrapContext, org.hibernate.boot.spi.MetadataImplementor, org.hibernate.boot.spi.SessionFactoryOptions)

Класс метода org.hibernate.internal.SessionFactoryImpl доступен из следующие местоположения:

jar:file:/C:/Users/Myuser/.gradle/caches/modules-2/files-2.1/org.hibernate/hibernate-core/5.4.12.Final/7813daed21576920450443097d69823245d112d2/hibernate-core-5.4.12.Final.jar!/org/hibernate/internal/SessionFactoryImpl.class

Он был загружен из следующего местоположения:

file:/C:/Users/Myuser/.gradle/caches/modules-2/files-2.1/org.hibernate/hibernate-core/5.4.12.Final/7813daed21576920450443097d69823245d112d2/hibernate-core-5.4.12.Final.jar

Действие:

Correct the classpath of your application so that it contains a single, compatible version of org.hibernate.internal.SessionFactoryImpl

1 Ответ

0 голосов
/ 28 апреля 2020

Hibernate OGM 5.4.1. Для финала требуется Hibernate ORM 5.3.6. Для финала.

Некоторые зависимости в проекте не выровнены.

...