MS Sql
Spring XDのDAOでHibernate
entityManagerFactoryを使用することは可能ですか??
DataSource
私のプロジェクトには構成クラスがあり、私のプロジェクトに必要な構成に必要な Bean を書いています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
ローカルPOMに。
また、依存関係をSpring XD libフォルダーに直接移動しましたが、それを行った後、例外が発生しました:
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.springframework.boot.context.event.EventPublishingRunListener org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:381) で org.springframework.boot.SpringApplication.getRunListeners(SpringApplication.java:352) で org.springframework.boot.SpringApplication.run(SpringApplication.java:274) ) org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:142) で org.springframework.xd.module.core.SimpleModule.initialize(SimpleModule.java:203) で org.springframework.xd.dirt. module.ModuleDeployer.deploy(ModuleDeployer.java:98) at org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer.java:88) at org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer. java:78) org.springframework.xd.dirt.server.ContainerRegistrar.deployModule(ContainerRegistrar.java:231) org.springframework.xd.dirt.server.ContainerRegistrar.deployJobModule(ContainerRegistrar.java:530) で org.springframework.xd.dirt.server.ContainerRegistrar.onChildAdded(ContainerRegistrar.java:447) で org.springframework.xd org.springframework.xd.dirt.server.ContainerRegistrar$DeploymentListener.childEvent(ContainerRegistrar.java:826) の .dirt.server.ContainerRegistrar.access$800(ContainerRegistrar.java:95) cache.PathChildrenCache$5.apply(PathChildrenCache.java:509) at org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:503) at org.apache.curator.framework.listen.ListenerContainer$1 .run(ListenerContainer.java:92) at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297) at 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.java:471) で java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) で java.util.concurrent.FutureTask.run(FutureTask.java:166) で java .util.concurrent.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) の ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.lang.Thread.run(Thread.java:722) の原因: java.lang .IllegalArgumentException: クラス org.springframework.boot.context.event.EventPublishingRunListener は、org.springframework.util.Assert.isAssignable(Assert.java:369) で org.springframework.util.SpringApplicationRunListener のインターフェイス org.springframework.boot.SpringApplicationRunListener に割り当てられません。 .Assert.isAssignable(Assert.java:352) at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:375) ... 29 詳細lang.IllegalArgumentException: クラス org.springframework.boot.context.event.EventPublishingRunListener は、org.springframework の org.springframework.util.Assert.isAssignable(Assert.java:369) のインターフェース org.springframework.boot.SpringApplicationRunListener に割り当てられません。 util.Assert.isAssignable(Assert.java:352) at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:375) ... 29 詳細lang.IllegalArgumentException: クラス org.springframework.boot.context.event.EventPublishingRunListener は、org.springframework の org.springframework.util.Assert.isAssignable(Assert.java:369) のインターフェース org.springframework.boot.SpringApplicationRunListener に割り当てられません。 util.Assert.isAssignable(Assert.java:352) at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:375) ... 29 詳細getSpringFactoriesInstances(SpringApplication.java:375) ... 29 もっと見るgetSpringFactoriesInstances(SpringApplication.java:375) ... 29 もっと見る
この Exception の原因を特定できる人はいますか?
SPRING-XD を使用した上記の作業例に関するヘルプは、非常に高く評価されています。
ありがとう