Интеграция Hibernate OGM и Spring Data JPA

Как мы можем интегрировать Hibernate OGM с Spring Data JPA, чтобы существующее приложение, содержащее Hibernate ORM, можно было использовать с Hibernate OGM.

Это конфигурация, которую я сейчас использую для Hibernate ORM.

 @Bean(name = "jdbc")
 public DriverManagerDataSource getDriverManager() {
 DriverManagerDataSource driverManagerDataSource = new
 DriverManagerDataSource(
 env.getProperty(dataBase + ".url"), env.getProperty(dataBase +
 ".username"),
 env.getProperty(dataBase + ".password"));
 driverManagerDataSource.setDriverClassName(env.getProperty(dataBase +
 ".driver"));
 return driverManagerDataSource;
 }

@Bean(name = "japaImplementation")
public HibernateJpaVendorAdapter getHibernate() {
    HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
    vendorAdapter.setDatabasePlatform(env.getProperty(dataBase + ".dialect"));
    vendorAdapter.setGenerateDdl(true);
    vendorAdapter.setShowSql(true);
    return vendorAdapter;
}

 @Bean(name = "entityManagerFactory")
 public LocalContainerEntityManagerFactoryBean
 getEntityManagerFactoryBean() {
 LocalContainerEntityManagerFactoryBean factoryBean = new
 LocalContainerEntityManagerFactoryBean();
 factoryBean.setDataSource(getDriverManager());
 factoryBean.setJpaVendorAdapter(getHibernate());
 factoryBean.setPackagesToScan("com.xyz.abc.entity");
 return factoryBean;
 }

person Radhakrishna Pemmasani    schedule 17.05.2017    source источник
comment
Пробовали ли вы ответить на этот вопрос: stackoverflow. ком/вопросы/25341509/   -  person Jens Schauder    schedule 18.05.2017
comment
Да, пробовал, но получение многих исключений класса не найдено может быть связано с проблемами совместимости фреймворка.   -  person Radhakrishna Pemmasani    schedule 18.05.2017


Ответы (2)


Я только что бегло взглянул на Hibernate OGM. Кажется, это просто реализация JPA. Так что Spring Data JPA должен работать из коробки. Хотя до сих пор его не тестируют против него.

Но возникает вопрос, а зачем вам это? Модули Spring Data уже существуют для большинства, если не для всех хранилищ данных, поддерживаемых Hibernate OGM. Так почему бы вам не использовать Spring Data MongoDB напрямую?

person Jens Schauder    schedule 18.05.2017
comment
Поскольку мое приложение уже реализовано с использованием JPA, я хотел бы воспользоваться этим, просто изменив конфигурацию, а не внося изменения на уровне кода. Поскольку Hibernate OGM является реализацией JPA, это будет так же просто, как переключение между поставщиками JPA. - person Radhakrishna Pemmasani; 18.05.2017
comment
Как написано, это должно работать из коробки. Spring Data будет использовать любую EntityManagerFactory, которую найдет, независимо от того, от какого поставщика она исходит. - person Jens Schauder; 18.05.2017
comment
да, но я застрял в части конфигурации, я знаю, как интегрировать hibernate orm, но не уверен, как использовать hibernate ogm для создания entitymanagerfactory. - person Radhakrishna Pemmasani; 18.05.2017
comment
так как выглядит ваша конфигурация? И какую ошибку вы получаете? Пожалуйста, обновите свой вопрос. - person Jens Schauder; 18.05.2017

Проекты являются скорее альтернативами друг другу, чем чем-то, что позволяет одному работать поверх другого. См. этот вопрос для аргументы с обеих сторон.

person Oliver Drotbohm    schedule 18.05.2017
comment
Я согласен, но есть ли возможность запустить мое приложение, просто сменив провайдера, поскольку приложение уже реализовано с использованием Hibernate as JPA, и они предоставили реализацию NoSQL. Итак, в идеале это было бы похоже на переключение с одной реализации JPA на другую. Разве не так?? Как настроить Spring Data JPA для использования пользовательского поставщика, если он доступен. - person Radhakrishna Pemmasani; 18.05.2017