Перецветы
Я пытаюсь получить ObjectDB (2.7.6_01, последняя версия) с Spring Data JPA (2.1.4, по-видимому, последняя).
В документах для Spring Data JPA говорится, что необходим поставщик JPA версии 2.1. Поставщик JPA AFAIKT ObjectDB - 2.0... не уверен, проблема в этом или нет.
Но моя проблема в этом исключении:
Caused by: java.lang.IllegalArgumentException: com.objectdb.jpa.EMF is not an interface
Что вызывает:
EntityManagerFactory interface [class com.objectdb.jpa.EMF] seems to conflict with Spring's EntityManagerFactoryInfo mixin - consider resetting the 'entityManagerFactoryInterface' property to plain [javax.persistence.EntityManagerFactory]
Я рад, что мой код правильно выбирает фабрику диспетчера сущностей ObjectDB, но оболочка Spring CGLIB вокруг этого класса (EMF) не работает.
У кого-нибудь есть идеи?
Зависимости Gradle:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compile files('libs/objectdb-jee.jar')
compileOnly 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Затем любой из этих двух @Beans (один или другой, а не оба) вызывает одно и то же исключение EMF, указанное выше:
@Bean
public JpaVendorAdapter jpaVendorAdapter() {
final ObjectdbJpaVendorAdapter vendorAdapter = new ObjectdbJpaVendorAdapter();
return vendorAdapter;
}
Or
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
final ObjectdbJpaVendorAdapter vendorAdapter = new ObjectdbJpaVendorAdapter();
vendorAdapter.setShowSql(true);
vendorAdapter.setGenerateDdl(false);
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("com.example.demo.persistence");
factory.setDataSource(dataSource());
factory.afterPropertiesSet();
return factory;
}
У меня есть неактивный DataSource @Bean, чтобы поддерживать некоторые аспекты Spring счастливыми, но я не думаю, что он играет активную роль в этой проблеме.
Spring.jpa.* вообще не установлен.
Ваше здоровье