Переполнения
Я пытаюсь получить 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;
}
Или
@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. * установлен на всех.
ура