diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java index 3dd66a573cb2f4b4b21acd21d868038e5b7ee07f..c19555325c5f5baa2564deb10b048aba0f33b9d7 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java @@ -63,11 +63,11 @@ public class Table { @org.springframework.data.annotation.Transient @ToString.Exclude - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) @JoinColumn(name = "tdbid", insertable = false, updatable = false) private Database database; - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.DETACH, mappedBy = "table") + @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE, mappedBy = "table") @OrderBy("ordinalPosition") private List<TableColumn> columns; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java index 8ea2472b4bf0c5cd82bcdd21d4129515a38a1d8c..18412a2792a1f9f9a37c560a77fc00015de5b437 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java @@ -52,13 +52,13 @@ public class TableColumn implements Comparable<TableColumn> { private Long dfid; @ToString.Exclude - @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) + @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) @JoinColumn(name = "dfid", referencedColumnName = "id", insertable = false, updatable = false) private ContainerImageDate dateFormat; @org.springframework.data.annotation.Transient @ToString.Exclude - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) @JoinColumns({ @JoinColumn(name = "tid", referencedColumnName = "id", insertable = false, updatable = false), @JoinColumn(name = "cdbid", referencedColumnName = "tdbid", insertable = false, updatable = false) @@ -117,7 +117,7 @@ public class TableColumn implements Comparable<TableColumn> { @CreatedDate private Instant created; - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) @JoinTable(name = "mdb_columns_concepts", joinColumns = { @JoinColumn(name = "cid", referencedColumnName = "id", insertable = false, updatable = false), diff --git a/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceIntegrationTest.java b/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceIntegrationTest.java index 455cc6a4bce926ea5bea3fb7b12ae31c0c768f04..a25a26c57a1c39b8b1a0706861fa74e9cf81bec0 100644 --- a/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceIntegrationTest.java +++ b/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceIntegrationTest.java @@ -5,6 +5,7 @@ import at.tuwien.api.database.query.QueryResultDto; import at.tuwien.api.database.table.TableCsvDto; import at.tuwien.config.DockerConfig; import at.tuwien.config.ReadyConfig; +import at.tuwien.entities.database.table.Table; import at.tuwien.exception.*; import at.tuwien.listener.impl.RabbitMqListenerImpl; import at.tuwien.repository.jpa.*; @@ -74,6 +75,9 @@ public class QueryServiceIntegrationTest extends BaseUnitTest { @Autowired private TableRepository tableRepository; + @Autowired + private TableColumnRepository tableColumnRepository; + @Autowired private ConceptRepository conceptRepository; @@ -169,25 +173,31 @@ public class QueryServiceIntegrationTest extends BaseUnitTest { databaseRepository.save(DATABASE_1); databaseRepository.save(DATABASE_2); databaseRepository.save(DATABASE_3); - /* create tables */ + /* create tables 1 */ TABLE_1.setDatabase(DATABASE_1); + tableRepository.save(TABLE_1); TABLE_1.setColumns(TABLE_1_COLUMNS); - TABLE_1_COLUMNS.forEach(column -> column.setTable(TABLE_1)); tableRepository.save(TABLE_1); + TABLE_1_COLUMNS.forEach(column -> column.setTable(TABLE_1)); + /* create tables 2 */ TABLE_2.setDatabase(DATABASE_1); + tableRepository.save(TABLE_2); TABLE_2.setColumns(TABLE_2_COLUMNS); - TABLE_2_COLUMNS.forEach(column -> column.setTable(TABLE_2)); tableRepository.save(TABLE_2); + TABLE_2_COLUMNS.forEach(column -> column.setTable(TABLE_2)); + /* create tables 3 */ TABLE_3.setDatabase(DATABASE_3); tableRepository.save(TABLE_3); - TABLE_4.setDatabase(DATABASE_2); - TABLE_4.setColumns(TABLE_4_COLUMNS); - TABLE_4_COLUMNS.forEach(column -> column.setTable(TABLE_4)); - tableRepository.save(TABLE_4); - TABLE_5.setDatabase(DATABASE_2); - TABLE_5.setColumns(TABLE_5_COLUMNS); - TABLE_5_COLUMNS.forEach(column -> column.setTable(TABLE_5)); - tableRepository.save(TABLE_5); +// TABLE_4.setDatabase(DATABASE_2); +// tableRepository.save(TABLE_4); +// TABLE_4.setColumns(TABLE_4_COLUMNS); +// TABLE_4_COLUMNS.forEach(column -> column.setTable(TABLE_4)); +// tableRepository.save(TABLE_4); +// TABLE_5.setDatabase(DATABASE_2); +// tableRepository.save(TABLE_5); +// TABLE_5.setColumns(TABLE_5_COLUMNS); +// TABLE_5_COLUMNS.forEach(column -> column.setTable(TABLE_5)); +// tableRepository.save(TABLE_5); } @Test