#1247 - Unique index or primary key violation - when jdbc batch cascading to PrivateOwned child with unique constraint

This commit is contained in:
Rob Bygrave
2018-02-02 20:43:55 +13:00
parent 851f1c98b0
commit 5ff71324d0
2 changed files with 31 additions and 4 deletions
@@ -2,6 +2,7 @@ package org.tests.cascade;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.Transaction;
import org.junit.Test;
import org.tests.model.basic.TSDetail;
import org.tests.model.basic.TSMaster;
@@ -27,4 +28,30 @@ public class TestPrivateOwnedCascadeOrder extends BaseTestCase {
Ebean.save(master1);
}
@Test
public void testWithTransaction() {
// setup
TSMaster master = new TSMaster();
master.getDetails().add(new TSDetail("d97", "ONE2"));
master.getDetails().add(new TSDetail("d96", "TWO2"));
Ebean.save(master);
// act
TSMaster master1 = Ebean.find(master.getClass(), master.getId());
// Check Ebean deletes the existing c97 first as the unique values clash
Transaction transaction = Ebean.beginTransaction();
try {
master1.getDetails().clear();
master1.getDetails().add(new TSDetail("d98", "TWO2"));
Ebean.save(master1);
transaction.commit();
} finally {
transaction.end();
}
}
}