No effective change - add a new test for OneToMany orphanRemoval=true

This commit is contained in:
rob bygrave
2018-08-21 21:08:17 +12:00
parent 663b1bb4aa
commit d11bb2c4e5
3 changed files with 154 additions and 0 deletions
@@ -0,0 +1,58 @@
package org.tests.model.orphanremoval;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Version;
@Entity
public class OrpDetail {
@Id
String id;
String detail;
@ManyToOne
OrpMaster master;
@Version
long version;
public OrpDetail(String id, String detail) {
this.id = id;
this.detail = detail;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public OrpMaster getMaster() {
return master;
}
public void setMaster(OrpMaster master) {
this.master = master;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public long getVersion() {
return version;
}
public void setVersion(long version) {
this.version = version;
}
}
@@ -0,0 +1,60 @@
package org.tests.model.orphanremoval;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Version;
import java.util.List;
@Entity
public class OrpMaster {
@Id
String id;
String name;
@OneToMany(orphanRemoval = true, cascade = CascadeType.ALL)
List<OrpDetail> details;
@Version
long version;
public OrpMaster(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<OrpDetail> getDetails() {
return details;
}
public void setDetails(List<OrpDetail> details) {
this.details = details;
}
public long getVersion() {
return version;
}
public void setVersion(long version) {
this.version = version;
}
}
@@ -0,0 +1,36 @@
package org.tests.model.orphanremoval;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import org.ebeantest.LoggedSqlCollector;
import org.junit.Test;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class TestOrphanRemoveO2M extends BaseTestCase {
@Test
public void clear_expect_deletes() {
OrpMaster master = new OrpMaster("m","master");
master.getDetails().add(new OrpDetail("d1", "d1"));
master.getDetails().add(new OrpDetail("d2", "d2"));
Ebean.save(master);
master.getDetails().clear();
LoggedSqlCollector.start();
Ebean.save(master);
List<String> sql = LoggedSqlCollector.stop();
assertThat(Ebean.find(OrpDetail.class, "d1")).isNull();
assertThat(Ebean.find(OrpDetail.class, "d2")).isNull();
assertThat(sql).hasSize(2);
assertThat(sql.get(0)).contains("delete from orp_detail where id=?");
}
}