diff --git a/Makefile b/Makefile index 1de82865aa2cd00d37ad3879f346d41ab7cab89b..e3c832ef22945416a0d34c70bcfa4ec742c55ef1 100644 --- a/Makefile +++ b/Makefile @@ -193,31 +193,31 @@ pull-metadata: test-backend: test-authentication-service test-container-service test-database-service test-discovery-service test-gateway-service test-query-service test-table-service test-identifier-service test-metadata-service -test-authentication-service: +test-authentication-service: build-backend-metadata-db mvn -f ./fda-authentication-service/pom.xml clean test verify -test-identifier-service: +test-identifier-service: build-backend-metadata-db mvn -f ./fda-identifier-service/pom.xml clean test verify -test-container-service: +test-container-service: build-backend-metadata-db mvn -f ./fda-container-service/pom.xml clean test verify -test-database-service: +test-database-service: build-backend-metadata-db mvn -f ./fda-database-service/pom.xml clean test verify -test-discovery-service: +test-discovery-service: build-backend-metadata-db mvn -f ./fda-discovery-service/pom.xml clean test verify -test-gateway-service: +test-gateway-service: build-backend-metadata-db mvn -f ./fda-gateway-service/pom.xml clean test verify -test-query-service: +test-query-service: build-backend-metadata-db mvn -f ./fda-query-service/pom.xml clean test verify -test-table-service: +test-table-service: build-backend-metadata-db mvn -f ./fda-table-service/pom.xml clean test verify -test-metadata-service: +test-metadata-service: build-backend-metadata-db mvn -f ./fda-metadata-service/pom.xml clean test verify coverage-frontend: clean build-frontend diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java index 7f78acda8f97c7034149f42df8da7d8dec7fa6a7..79202e12775045ecd6767e4fd6f2841358ccee5b 100644 --- a/fda-container-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java +++ b/fda-container-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java @@ -142,7 +142,6 @@ public abstract class BaseUnitTest { .jdbcMethod(IMAGE_1_JDBC) .dialect(IMAGE_1_DIALECT) .driverClass(IMAGE_1_DRIVER) - .containers(List.of()) .compiled(IMAGE_1_BUILT) .size(IMAGE_1_SIZE) .environment(IMAGE_1_ENV) @@ -193,7 +192,6 @@ public abstract class BaseUnitTest { .jdbcMethod(IMAGE_2_JDBC) .dialect(IMAGE_2_DIALECT) .driverClass(IMAGE_2_DRIVER) - .containers(List.of()) .compiled(IMAGE_2_BUILT) .size(IMAGE_2_SIZE) .environment(IMAGE_2_ENV) diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java index 80aa2f15c41a2dcf312678fa014ee45c73c42d70..9bcaf7b91d5d62c7b86862e8df87c6231f623753 100644 --- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java +++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java @@ -11,7 +11,6 @@ import at.tuwien.repository.jpa.ImageRepository; import at.tuwien.repository.jpa.UserRepository; import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.exception.NotModifiedException; -import com.github.dockerjava.api.model.HostConfig; import com.github.dockerjava.api.model.Network; import lombok.extern.log4j.Log4j2; import org.apache.http.auth.BasicUserPrincipal; @@ -46,7 +45,7 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { @MockBean private ContainerRepository containerRepository; - @MockBean + @Autowired private ImageRepository imageRepository; @Autowired @@ -82,6 +81,7 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { /* mock data */ userRepository.save(USER_1); + imageRepository.save(IMAGE_1); } @AfterEach @@ -127,8 +127,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { .thenReturn(Optional.empty()); when(containerRepository.save(any(Container.class))) .thenReturn(CONTAINER_1); - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); /* test */ final Container container = containerService.create(request, principal); @@ -148,8 +146,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { /* mock */ when(containerRepository.findByInternalName(CONTAINER_1_INTERNALNAME)) .thenReturn(Optional.of(CONTAINER_1)); - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); /* test */ assertThrows(ContainerAlreadyExistsException.class, () -> { @@ -163,8 +159,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { /* mock */ when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.empty()); - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); /* test */ assertThrows(ContainerNotFoundException.class, () -> { @@ -182,8 +176,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { final Principal principal = new BasicUserPrincipal(USER_1_USERNAME); /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); /* test */ assertThrows(ImageNotFoundException.class, () -> { @@ -196,8 +188,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void findById_notFound_fails() { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); /* test */ assertThrows(ContainerNotFoundException.class, () -> { @@ -209,8 +199,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void change_start_succeeds() throws DockerClientException, ContainerNotFoundException { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); dockerUtil.createContainer(CONTAINER_1); @@ -223,8 +211,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void change_stop_succeeds() throws DockerClientException, InterruptedException, ContainerNotFoundException { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); dockerUtil.createContainer(CONTAINER_1); @@ -238,8 +224,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void change_startSavedButNotFound_fails() { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); @@ -253,8 +237,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void change_removeSavedButNotFound_fails() { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); @@ -268,8 +250,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void getAll_succeeds() { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findAll()) .thenReturn(List.of(CONTAINER_1, CONTAINER_2)); @@ -282,8 +262,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void remove_succeeds() throws DockerClientException, ContainerStillRunningException, ContainerNotFoundException { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); dockerUtil.createContainer(CONTAINER_1); @@ -306,8 +284,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void remove_stillRunning_fails() throws InterruptedException { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); dockerUtil.createContainer(CONTAINER_1); @@ -323,8 +299,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void change_alreadyRunning_fails() throws InterruptedException { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); dockerUtil.createContainer(CONTAINER_1); @@ -340,8 +314,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void change_startNotFound_fails() { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.empty()); dockerUtil.createContainer(CONTAINER_1); @@ -356,8 +328,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void change_alreadyStopped_fails() throws InterruptedException { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); dockerUtil.createContainer(CONTAINER_1); @@ -374,8 +344,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void change_stopNeverStarted_fails() { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); dockerUtil.createContainer(CONTAINER_1); @@ -390,8 +358,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void change_stopSavedButNotFound_fails() { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); @@ -406,8 +372,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { ContainerNotRunningException { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); dockerUtil.createContainer(CONTAINER_1); @@ -425,8 +389,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void inspect_notFound_fails() { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); /* test */ assertThrows(ContainerNotFoundException.class, () -> { @@ -438,8 +400,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest { public void inspect_notRunning_fails() { /* mock */ - when(imageRepository.findByRepositoryAndTag(IMAGE_1_REPOSITORY, IMAGE_1_TAG)) - .thenReturn(Optional.of(IMAGE_1)); when(containerRepository.findById(CONTAINER_1_ID)) .thenReturn(Optional.of(CONTAINER_1)); dockerUtil.createContainer(CONTAINER_1); diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java index 6d11f4dbdc131d3d9b971fc2ed83f12325c8eeaa..a750619662b7241875bd51c46a4952182a19cc80 100644 --- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java +++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java @@ -44,6 +44,7 @@ public class ImageServiceIntegrationTest extends BaseUnitTest { @Transactional @BeforeEach public void beforeEach() { + imageRepository.save(IMAGE_1); log.debug("save container {}", CONTAINER_1); containerRepository.save(CONTAINER_1); } diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java index d483e9f5932e26a09a1260b21aee8b34004e597e..c9227c53a94525c34602fac65a174bbe5481944e 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java @@ -58,14 +58,14 @@ public class Container { private Integer port; @org.springframework.data.annotation.Transient - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) + @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @JoinColumns({ @JoinColumn(name = "id", referencedColumnName = "id", insertable = false, updatable = false) }) private List<Database> databases; @org.springframework.data.annotation.Transient - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) private ContainerImage image; @Column diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java index 8704b32853c007cb7dcb10b01e00546065f404df..aa42dee40e6a61082daed91254918cf761db7b3c 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java @@ -70,7 +70,7 @@ public class ContainerImage { @org.springframework.data.annotation.Transient @ToString.Exclude - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE, mappedBy = "image") + @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.DETACH, mappedBy = "image") private List<Container> containers; @Column(nullable = false, updatable = false) diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageDate.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageDate.java index 48a8d47a4b3e23756fdf49ae3160bc0b45d16aba..35f755a7147f5e606f4dded54a78499f3ad87ced 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageDate.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageDate.java @@ -36,7 +36,7 @@ public class ContainerImageDate { @org.springframework.data.annotation.Transient @ToString.Exclude - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @JoinColumn(name = "iid", insertable = false, updatable = false) private ContainerImage image; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java index 14466a12bd8d992f339a6367f96455fd5a67cae8..056311dedf7ae868176ea99e6d2613cbddd3d8b5 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java @@ -46,7 +46,7 @@ public class View { private User creator; @org.springframework.data.annotation.Transient - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @JoinColumn(name = "vdbid", insertable = false, updatable = false) private Database database; 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 c19555325c5f5baa2564deb10b048aba0f33b9d7..3dd66a573cb2f4b4b21acd21d868038e5b7ee07f 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.MERGE) + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @JoinColumn(name = "tdbid", insertable = false, updatable = false) private Database database; - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE, mappedBy = "table") + @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.DETACH, 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 18412a2792a1f9f9a37c560a77fc00015de5b437..8ea2472b4bf0c5cd82bcdd21d4129515a38a1d8c 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.MERGE) + @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @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.MERGE) + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @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.MERGE) + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @JoinTable(name = "mdb_columns_concepts", joinColumns = { @JoinColumn(name = "cid", referencedColumnName = "id", insertable = false, updatable = false), diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java index 733b2c6b146340798d87381f979cc8e433c715b5..01f0334edc5de67f4a7bef976a5a44a2add1a330 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java @@ -29,7 +29,7 @@ public class Concept { @org.springframework.data.annotation.Transient @ToString.Exclude - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) + @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @JoinTable(name = "mdb_columns_concepts", joinColumns = @JoinColumn(name = "uri"), inverseJoinColumns = { diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java index 2fd30300602a791c7ea64856564685e496e2a824..14e2762a4d74330a57c1135f4b266c96e14f4408 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java @@ -71,7 +71,7 @@ public class Identifier { @Enumerated(EnumType.STRING) private LanguageType language; - @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) + @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @JoinColumns({ @JoinColumn(name = "License", referencedColumnName = "identifier") }) @@ -118,7 +118,7 @@ public class Identifier { @Enumerated(EnumType.STRING) private VisibilityType visibility = VisibilityType.SELF; - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) + @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @JoinColumns({ @JoinColumn(name = "iid", referencedColumnName = "id", insertable = false, updatable = false) }) diff --git a/fda-metadata-db/querystore/src/main/java/at/tuwien/querystore/Query.java b/fda-metadata-db/querystore/src/main/java/at/tuwien/querystore/Query.java index 7e29b0f91ecbd10dd5e9f81a2c5a9d5498d39a5c..3565d547b25dd01edce92ab8203861b2ad26a0fd 100644 --- a/fda-metadata-db/querystore/src/main/java/at/tuwien/querystore/Query.java +++ b/fda-metadata-db/querystore/src/main/java/at/tuwien/querystore/Query.java @@ -79,7 +79,7 @@ public class Query implements Serializable { @javax.persistence.Column(nullable = false) private Long createdBy; - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) + @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) private List<at.tuwien.querystore.Table> tables; @javax.persistence.Column(name = "last_modified") diff --git a/fda-metadata-db/querystore/src/main/java/at/tuwien/querystore/Table.java b/fda-metadata-db/querystore/src/main/java/at/tuwien/querystore/Table.java index c4628e1185ebbae3eb3cb39d6c45644853668f85..88f672568f499b42102d2ff06d2794d56ad973c0 100644 --- a/fda-metadata-db/querystore/src/main/java/at/tuwien/querystore/Table.java +++ b/fda-metadata-db/querystore/src/main/java/at/tuwien/querystore/Table.java @@ -35,7 +35,7 @@ public class Table implements Serializable { @javax.persistence.Column(nullable = false) private Long dbid; - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) + @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) private List<at.tuwien.querystore.Column> columns; @javax.persistence.Column(nullable = false, updatable = false)