mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
Add test only - Add test for L2 cache with orphanRemoval
This commit is contained in:
@@ -1,12 +1,16 @@
|
||||
package org.tests.model.orphanremoval;
|
||||
|
||||
import io.ebean.annotation.Cache;
|
||||
|
||||
import javax.persistence.CascadeType;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.OneToMany;
|
||||
import javax.persistence.Version;
|
||||
import java.util.List;
|
||||
|
||||
@Cache
|
||||
@Entity
|
||||
public class OrpMaster {
|
||||
|
||||
@@ -15,7 +19,8 @@ public class OrpMaster {
|
||||
|
||||
String name;
|
||||
|
||||
@OneToMany(orphanRemoval = true, cascade = CascadeType.ALL)
|
||||
@OneToMany(orphanRemoval = true, cascade = CascadeType.ALL)//, mappedBy = "master")
|
||||
@JoinColumn(name = "master_id", referencedColumnName = "id")
|
||||
List<OrpDetail> details;
|
||||
|
||||
@Version
|
||||
|
||||
@@ -33,4 +33,45 @@ public class TestOrphanRemoveO2M extends BaseTestCase {
|
||||
assertThat(sql).hasSize(2);
|
||||
assertThat(sql.get(0)).contains("delete from orp_detail where id=?");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCacheUse() {
|
||||
|
||||
// add test data first
|
||||
OrpMaster m0 = new OrpMaster("m2", "master2");
|
||||
m0.getDetails().add(new OrpDetail("d21", "d1"));
|
||||
m0.getDetails().add(new OrpDetail("d22", "d2"));
|
||||
|
||||
Ebean.save(m0);
|
||||
|
||||
OrpMaster m1 = Ebean.find(OrpMaster.class, "m2");
|
||||
|
||||
m1.getDetails().clear();
|
||||
m1.getDetails().add(new OrpDetail("d23", "d3"));
|
||||
Ebean.save(m1);
|
||||
|
||||
m1 = Ebean.find(OrpMaster.class, "m2");
|
||||
// Expect only one.
|
||||
assertThat(m1.getDetails()).hasSize(1);
|
||||
assertThat(m1.getDetails()).extracting("id").containsExactly("d23");
|
||||
|
||||
m1.getDetails().clear();
|
||||
m1.getDetails().add(new OrpDetail("d24", "d4"));
|
||||
m1.getDetails().add(new OrpDetail("d25", "d5"));
|
||||
Ebean.save(m1);
|
||||
|
||||
m1 = Ebean.find(OrpMaster.class, "m2");
|
||||
assertThat(m1.getDetails()).hasSize(2);
|
||||
assertThat(m1.getDetails()).extracting("id").containsExactly("d24", "d25");
|
||||
|
||||
|
||||
m1 = Ebean.find(OrpMaster.class)
|
||||
.setId("m2")
|
||||
.setUseCache(false)
|
||||
.findOne();
|
||||
|
||||
// Expect only one.
|
||||
assertThat(m1.getDetails()).hasSize(2);
|
||||
assertThat(m1.getDetails()).extracting("id").containsExactly("d24", "d25");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user