Tôi muốn ứng dụng Spring của tôi tự động tạo lược đồ và bảng DB ... Tôi đã đọc một số Q & A cho chủ đề này và tôi đã đặt URL DB của mình thành :H2 DB trong Spring Boot Hibernate không tạo Db Schema
H2DataSource.setUrl ("jdbc: h2: mem: tmp.db; INIT = CREATE SCHEMA NẾU KHÔNG EXISTS GPSTRACKER");
và tôi đã chú thích Các đối tượng của tôi như:
@Entity
@Table (name = "tblGps", lược đồ = "GPSTRACKER")
nhưng schema db vẫn chưa được tạo.
Đây là đầu ra nhật ký của tôi. Hibernate đang cố gắng tạo các bảng, nhưng không thể tìm thấy lược đồ!
Tôi đang làm gì sai? Bất kỳ đề xuất?
Log Output
2015-04-20 22:29:38.211 INFO 7056 --- [ost-startStop-1] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2015-04-20 22:29:38.356 INFO 7056 --- [ost-startStop-1] org.hibernate.Version : HHH000412: Hibernate Core {4.3.8.Final}
2015-04-20 22:29:38.360 INFO 7056 --- [ost-startStop-1] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2015-04-20 22:29:38.362 INFO 7056 --- [ost-startStop-1] org.hibernate.cfg.Environment : HHH000021: Bytecode provider name : javassist
2015-04-20 22:29:38.745 INFO 7056 --- [ost-startStop-1] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
2015-04-20 22:29:38.899 INFO 7056 --- [ost-startStop-1] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2015-04-20 22:29:39.202 INFO 7056 --- [ost-startStop-1] o.h.h.i.ast.ASTQueryTranslatorFactory : HHH000397: Using ASTQueryTranslatorFactory
2015-04-20 22:29:39.795 INFO 7056 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000227: Running hbm2ddl schema export
2015-04-20 22:29:39.801 ERROR 7056 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000389: Unsuccessful: drop table GPSTRACKER.tbl_gps if exists
2015-04-20 22:29:39.801 ERROR 7056 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : Schema "GPSTRACKER" nicht gefunden
Schema "GPSTRACKER" not found; SQL statement:
drop table GPSTRACKER.tbl_gps if exists [90079-185]
EntityManagerFactory
@Bean
public EntityManagerFactory entityManagerFactory() {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(true);
vendorAdapter.setShowSql(true);
vendorAdapter.setDatabasePlatform(MyAppSettings.getDbPlattform());
HibernateJpaDialect jpd = new HibernateJpaDialect();
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaDialect(jpd);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan(MyAppSettings.packagesToScan);
factory.setDataSource(MyDataSource());
return factory.getObject();
}
DataSource
DriverManagerDataSource H2DataSource = new DriverManagerDataSource();
H2DataSource.setDriverClassName("org.h2.Driver");
H2DataSource.setUrl("jdbc:h2:mem:tmp.db;INIT=CREATE SCHEMA IF NOT EXISTS GPSTRACKER");
H2DataSource.setUsername("sa");
H2DataSource.setPassword("");
@pvgoddijn i c không nhớ chính xác và tôi không thể tìm thấy mã ngay bây giờ. Nhưng tôi đoán đó là tôi cần phải trả lại LocalEntityManagerFactory
thay vì EntityManagerFactory
... hoặc sth như thế. chúc may mắn! có thể tôi có thể tìm thấy mã trong những ngày tiếp theo ...
cảm ơn, nhưng đối với các bản sao-pasters giữa chúng ta: properties.put ("hibernate.hbm2ddl.auto", "cập nhật") ; – codesmith