From 69e56be459376e7fb3cd6a1bea08b3664409e6b5 Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 28 Dec 2020 15:35:15 +0100 Subject: [PATCH] Failing testcase that shows wipe of all old children on save When adding a child to a newly saved bean (A), all other children are killed on save of A. --- .../tests/cascade/TestOnlyKillOrphans.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/ebean-core/src/test/java/org/tests/cascade/TestOnlyKillOrphans.java b/ebean-core/src/test/java/org/tests/cascade/TestOnlyKillOrphans.java index 3a510637c..8da56d1b1 100644 --- a/ebean-core/src/test/java/org/tests/cascade/TestOnlyKillOrphans.java +++ b/ebean-core/src/test/java/org/tests/cascade/TestOnlyKillOrphans.java @@ -6,6 +6,8 @@ import org.junit.Test; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; @@ -26,6 +28,23 @@ public class TestOnlyKillOrphans extends BaseTestCase { DB.delete(check); } + @Test + public void test2() { + final COOne one = setup(); + + assertThat(one.getChildren()).hasSize(2); + + one.getChildren().add(new COOneMany("_M1")); + + DB.save(one); + + // assert + COOne check = DB.find(COOne.class, one.getId()); + assertThat(check.getChildren().stream().map(it -> it.getName()).sorted().collect(Collectors.toList())) + .isEqualTo(Stream.of("M1", "M2", "_M1").sorted().collect(Collectors.toList())); + DB.delete(check); + } + private COOne setup() { COOne one = new COOne("P0"); one.setChildren(createManies("M1", "M2"));