diff --git a/fda-query-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java b/fda-query-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..bdbe4aebe2ca11a97b0db67471872b1f2545a670 --- /dev/null +++ b/fda-query-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java @@ -0,0 +1,29 @@ +package at.tuwien.hibernate; + +import org.hibernate.boot.model.relational.Namespace; +import org.hibernate.boot.model.relational.Sequence; +import org.hibernate.mapping.Table; +import org.hibernate.tool.schema.spi.SchemaFilter; + +/** + * Do not create table for class {@link at.tuwien.entities.database.table.columns.concepts.Concept} when using JUnit test + */ +public class DbrepoSchemaFilter implements SchemaFilter { + + public static final DbrepoSchemaFilter INSTANCE = new DbrepoSchemaFilter(); + + @Override + public boolean includeNamespace(Namespace namespace) { + return true; + } + + @Override + public boolean includeTable(Table table) { + return !table.getName().matches("mdb_concepts"); + } + + @Override + public boolean includeSequence(Sequence sequence) { + return true; + } +} diff --git a/fda-query-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaProvider.java b/fda-query-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..955c1bf46231402ce07826af025b9a4799c671ed --- /dev/null +++ b/fda-query-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaProvider.java @@ -0,0 +1,28 @@ +package at.tuwien.hibernate; + +import org.hibernate.tool.schema.spi.SchemaFilter; +import org.hibernate.tool.schema.spi.SchemaFilterProvider; + +/* keep */ +public class DbrepoSchemaProvider implements SchemaFilterProvider { + + @Override + public SchemaFilter getCreateFilter() { + return DbrepoSchemaFilter.INSTANCE; + } + + @Override + public SchemaFilter getDropFilter() { + return DbrepoSchemaFilter.INSTANCE; + } + + @Override + public SchemaFilter getMigrateFilter() { + return DbrepoSchemaFilter.INSTANCE; + } + + @Override + public SchemaFilter getValidateFilter() { + return DbrepoSchemaFilter.INSTANCE; + } +} diff --git a/fda-query-service/rest-service/src/test/resources/application.properties b/fda-query-service/rest-service/src/test/resources/application.properties index a3e7c659277c556e74c0cc43c0beb6f4f3be69fe..ef996777c5f464998d4109c911a800c99a5ff527 100644 --- a/fda-query-service/rest-service/src/test/resources/application.properties +++ b/fda-query-service/rest-service/src/test/resources/application.properties @@ -8,11 +8,16 @@ spring.cloud.discovery.enabled = false spring.cloud.config.discovery.enabled = false spring.cloud.config.enabled = false -# disable datasource +# internal datasource spring.datasource.url=jdbc:h2:mem:testdb;DATABASE_TO_UPPER=false;DB_CLOSE_ON_EXIT=FALSE;INIT=RUNSCRIPT FROM './src/test/resources/init.sql' spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.jpa.hibernate.ddl-auto=create-drop -spring.jpa.show-sql=false \ No newline at end of file +spring.jpa.show-sql=false +spring.jpa.properties.hibernate.hbm2ddl.schema_filter_provider=at.tuwien.hibernate.DbrepoSchemaProvider + +# additional logging +logging.level.org.hibernate.SQL=debug +logging.level.org.hibernate.type=trace \ No newline at end of file diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java b/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..bdbe4aebe2ca11a97b0db67471872b1f2545a670 --- /dev/null +++ b/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java @@ -0,0 +1,29 @@ +package at.tuwien.hibernate; + +import org.hibernate.boot.model.relational.Namespace; +import org.hibernate.boot.model.relational.Sequence; +import org.hibernate.mapping.Table; +import org.hibernate.tool.schema.spi.SchemaFilter; + +/** + * Do not create table for class {@link at.tuwien.entities.database.table.columns.concepts.Concept} when using JUnit test + */ +public class DbrepoSchemaFilter implements SchemaFilter { + + public static final DbrepoSchemaFilter INSTANCE = new DbrepoSchemaFilter(); + + @Override + public boolean includeNamespace(Namespace namespace) { + return true; + } + + @Override + public boolean includeTable(Table table) { + return !table.getName().matches("mdb_concepts"); + } + + @Override + public boolean includeSequence(Sequence sequence) { + return true; + } +} diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaProvider.java b/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..955c1bf46231402ce07826af025b9a4799c671ed --- /dev/null +++ b/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaProvider.java @@ -0,0 +1,28 @@ +package at.tuwien.hibernate; + +import org.hibernate.tool.schema.spi.SchemaFilter; +import org.hibernate.tool.schema.spi.SchemaFilterProvider; + +/* keep */ +public class DbrepoSchemaProvider implements SchemaFilterProvider { + + @Override + public SchemaFilter getCreateFilter() { + return DbrepoSchemaFilter.INSTANCE; + } + + @Override + public SchemaFilter getDropFilter() { + return DbrepoSchemaFilter.INSTANCE; + } + + @Override + public SchemaFilter getMigrateFilter() { + return DbrepoSchemaFilter.INSTANCE; + } + + @Override + public SchemaFilter getValidateFilter() { + return DbrepoSchemaFilter.INSTANCE; + } +} diff --git a/fda-table-service/rest-service/src/test/resources/application.properties b/fda-table-service/rest-service/src/test/resources/application.properties index 0d089270ca1bb4481e4c519ae0d4fd07c1eb6bf2..ef996777c5f464998d4109c911a800c99a5ff527 100644 --- a/fda-table-service/rest-service/src/test/resources/application.properties +++ b/fda-table-service/rest-service/src/test/resources/application.properties @@ -8,14 +8,15 @@ spring.cloud.discovery.enabled = false spring.cloud.config.discovery.enabled = false spring.cloud.config.enabled = false -# disable datasource +# internal datasource spring.datasource.url=jdbc:h2:mem:testdb;DATABASE_TO_UPPER=false;DB_CLOSE_ON_EXIT=FALSE;INIT=RUNSCRIPT FROM './src/test/resources/init.sql' spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.jpa.hibernate.ddl-auto=create-drop -spring.jpa.show-sql=true +spring.jpa.show-sql=false +spring.jpa.properties.hibernate.hbm2ddl.schema_filter_provider=at.tuwien.hibernate.DbrepoSchemaProvider # additional logging logging.level.org.hibernate.SQL=debug