【发布时间】:2016-05-25 06:00:18
【问题描述】:
我穿着一个基于 java 的应用程序并使用 Spring Boot
这是模型:
@Entity
@Table(name = "task_list")
public class Task implements Serializable
这是 Spring boot 用来启动的 Config 类:
@Configuration
@EnableAutoConfiguration
@EnableJpaRepositories
@EnableTransactionManagement
@ComponentScan(basePackages = {"controller", "dao", "service"})
class Config {
@Bean(name = "dataSource")
public DataSource dataSource() {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
return builder.setType(EmbeddedDatabaseType.HSQL).build();
}
@Bean(name = "entityManager")
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setDatabase(Database.HSQL);
vendorAdapter.setGenerateDdl(true);
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan(getClass().getPackage().getName());
factory.setDataSource(dataSource());
return factory;
}
@Bean
public PlatformTransactionManager transactionManager() {
return new JpaTransactionManager();
}
这是应用程序:
@SpringBootApplication()
public class Application {
public static void main(String[] args) {
SpringApplication.run(Config.class);
}
}
所以当我运行应用程序时,它会工作并创建所有 bean 但 当我想与数据库交互时,Hibernate 得到了这个错误
org.hibernate.MappingException: Unknown entity: model.Task
我认为这是因为没有任何persistence.xml 来映射 模型类,
那么我应该在 Spring Boot 应用程序中做什么? 应该把那个xml放在哪里? 是否有任何注释告诉 Spring Boot 映射模型类?
提前致谢。
【问题讨论】:
-
如果配置正确,您不需要自己声明任何
DataSource或任何EntityManager。 Spring Boot 在幕后为您管理它们。
标签: java spring hibernate spring-boot