Hibernate Spring与JPA的集成
我想请您指出我在以下设置中的错误 我将JPA用于Spring,更具体地说是Hibernate。 我想在JPA中使用H2内存数据库 我的Spring配置如下:Hibernate Spring与JPA的集成,hibernate,spring-data-jpa,h2,Hibernate,Spring Data Jpa,H2,我想请您指出我在以下设置中的错误 我将JPA用于Spring,更具体地说是Hibernate。 我想在JPA中使用H2内存数据库 我的Spring配置如下: @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() { LocalContainerEntityManagerFactoryBean emf = new LocalContainerEn
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean emf
= new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(getDataSource());
emf.setPackagesToScan(new String[] { "com.some.package" });
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
emf.setJpaVendorAdapter(vendorAdapter);
emf.setJpaProperties(additionalProperties());
return emf;
}
@Bean
public DataSource getDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("org.h2.Driver");
dataSource.setUrl("jdbc:h2:mem:H2DatabaseTest");
dataSource.setUsername( "user" );
dataSource.setPassword( "user" );
return dataSource;
}
Properties additionalProperties() {
Properties properties = new Properties();
properties.setProperty("hibernate.hbm2ddl.auto", "create-drop");
properties.setProperty("hibernate.hbm2ddl.import_files", "/init-db-test.sql");
properties.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
properties.setProperty("hibernate.id.new_generator_mappings", "true");
properties.setProperty("hibernate.show_sql", "true");
properties.setProperty("hibernate.format_sql", "true");
return properties;
}
```
我的问题是,带有Entity类的a表是由Hibernate创建的,但当我想查询它时,它会说未找到表“MYENTITYCLASS”
create table MYENTITYCLASS(
id bigint not null,
applicationId varchar(255),
name varchar(255),
status varchar(255),
timeOfRecord bigint,
primary key (id)
)
因此,我用@Table(name=“MYENTITYCLASS”)
注释了实体类,现在使用表名的大写版本。但这并没有解决问题
解决办法是什么?有两个数据库实例吗?实际上,每个连接都有不同的数据库实例 在数据源对象的url设置中使用
jdbc:h2:mem:H2DatabaseTest:DB\u CLOSE\u DELAY=-1
这意味着连接在使用后不会关闭,但会保持打开状态,以便再次使用。因此,也可以访问创建的数据库表。解决了此数据库表的可能重复: