MS Sql и Hibernate entityManagerFactory с DAO в Spring XD
Можно ли использовать, чтобы использовать MS Sql
а также Hibernate
entityManagerFactory с DAO в Spring XD??
У меня есть класс конфигурации в моем проекте, в котором я пишу Бины, необходимые для необходимых конфигураций для моего проекта, таких как мой DataSource
а также JDBCTemplate
,
У меня также есть бобы, как
@Bean(name = "entityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(@Qualifier("sqlServerDataSource") DataSource dataSource) {
LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
lef.setDataSource(dataSource);
lef.setJpaVendorAdapter(jpaVendorAdapter());
lef.setPackagesToScan("de.id.dih");
return lef;
}
private JpaVendorAdapter jpaVendorAdapter() {
HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
hibernateJpaVendorAdapter.setShowSql(true);
hibernateJpaVendorAdapter.setDatabase(Database.SQL_SERVER);
return hibernateJpaVendorAdapter;
}
@Bean
public PlatformTransactionManager transactionManager(LocalContainerEntityManagerFactoryBean emf) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf.getObject());
return transactionManager;
}
Когда я разверну свой проект в Spring XD,
Я получаю исключение:
java.lang.NoClassDefFoundError: org/springframework/orm/jpa/JpaVendorAdapter.
Затем я добавил зависимость для spring-boot-starter-data-jpa, я получил исключение как
java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.boot.SpringApplicationRunListener : org.springframework.boot.context.event.EventPublishingRunListener
Я попытался включить зависимость для Spring Boot с предоставленной областью и без нее. Я даже пытался добавить зависимости для
hibernate-jpa-2.1-api,
hibernate-entitymanager,
spring-orm
в местном ПОМ.
Я также переместил зависимости прямо в папку lib Spring XD, и после этого я получил исключение:
ERROR main boot.SpringApplication - Application startup failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set .
И когда я устанавливаю hibernate.dialect, мое исключение выглядит так:
16: 39: 23,344 ОШИБКА DeploymentsPathChildrenCache-0 server.ContainerRegistrar - Модуль развертывания исключительной ситуации java.lang.IllegalArgumentException: Невозможно создать экземпляр интерфейса org.springframework.boot.SpringApplicationRunListener: org.springfun Объекты boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:142) в org.springframework.xd.module.core.SimpleModule.initialize(SimpleModule.java:203) в org.springframework.xd.dloy.mo. (). ModuleDeployer.java:98) в org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer.java:88) в org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore (Модуль loyer.java:78) в org.springframework.xd.dirt.server.ContainerRegistrar.deployModule(ContainerRegistrar.java:231) в org.springframework.xd.dirt.server.ContainerRegistrar.deployJobModule.g: org_5.springframework.xd.dirt.server.ContainerRegistrar.onChildAdded(ContainerRegistrar.java:447) в org.springframework.xd.dirt.server.ContainerRegistrar.access$800(ContainerRegistrar.java:95f) в org.spr server.ContainerRegistrar$DeploymentListener.childEvent(ContainerRegistrar.java:826) в org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:509) в org.apache.curator.frameworkrec..PathChildrenCache$5.apply(PathChildrenCache.java:503) в org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:92) в com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService(MoreExecutors.java:297) в org.apache.curator.framework.listen.ListenerContainer.forEach(ListenerContainer.java:83) в org.apache.curator.framework.recipes.cache.PathChildrenCache.callListeners(PathChildrenCache.java:500) в org.apache.curator.framework.recipes.cache.EventOperation.invoke(EventOperation.java:35) в org.apache.curator.framework.recipes.cache.PathChildrenCache$10.run(PathChildrenCache.java:762) в java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) в java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) в java.util.concurrent.FutureTask.run(FutureTask.java:166) в java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java1): в java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java:334) в java.util.concurrent.FutureTask.run(FutureTask.java:166) в java.util.concurrent.ThreadPoolExecutor.rjoExecutor:1145) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) в java.lang.Thread.run(Thread.java:722). Вызывается: java.lang.IllegalArgumentException: класс org.springframework.boot.context.event.EventPublishingRunListener не может быть назначен для интерфейса org.springframework.boot.SpringApplicationRunListener в org.springframework.util.Assert.isAssignable(Assert.java:369) в org.springfrasertable.til..java:352) в org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:375) ... еще 29
Есть ли у какого-либо органа представление о том, что может быть причиной этого исключения?
ПОМОЩЬ ОТНОСИТЕЛЬНО РАБОЧЕГО ПРИМЕРА ВЫШЕ С SPRING-XD БОЛЬШОЙ ЦЕННОСТИ.
Спасибо