我有一个依赖项目B的春季启动项目A. 项目B有一些.hbm.xml资源。 在项目A中进行更改hibernate配置我为更改sessionFactory添加了DatabaseConfiguration @Configuration
@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setMappingLocations("classpath*:hibernate/**/*.hbm.xml");
Properties hibernateProperties = new Properties();
hibernateProperties.put("hibernate.dialect", HIBERNATE_DIALECT);
hibernateProperties.put("hibernate.show_sql", HIBERNATE_SHOW_SQL);
sessionFactoryBean.setHibernateProperties(hibernateProperties);
return sessionFactoryBean;
}
build.gradle具有此依赖性HibernateJpaAutoConfiguration运行
compile 'org.springframework.boot:spring-boot-starter-data-jpa'
当我在gradle bootRun或maven spring-boot中运行应用程序时:运行 应用程序启动和确定但是当我在java -jar中运行时 我得到例外
caused by: 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.MappingException:
An association from the table core_organization_Structure refers to an unmapped class: org.roshan.framework.domain.security.User
我不知道为什么HibernateJpaAutoConfiguration启动??? 之后,我将Application.java更改为喜欢这样排除但是再次无法正常工作。当我将hbm复制到projectA .project运行并且ok(使用java -jar)
@SpringBootApplication(exclude = {HibernateJpaAutoConfiguration.class })
更新
在搜索和测试之后,我发现了问题并解决了这个问题。因为问题是在project.spring启动执行器中使用hibernate-entitymanager依赖项检测到这个和auto config实体管理器。删除此依赖关系后禁用HibernateJpaAutoConfiguration工作正确:D
答案 0 :(得分:3)
经过搜索和测试,我发现问题,问题的原因是在project.spring启动执行器中使用hibernate-entitymanager依赖检测到这个和auto config实体管理器。删除此依赖关系后禁用HibernateJpaAutoConfiguration工作正确:D
答案 1 :(得分:1)
尝试此操作以禁用数据源自动配置:
import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}