mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-10-23 12:19:09 +00:00
Merge branch 'master' of https://github.com/Ryszard-Trojnacki/avaje-ebeanorm into Ryszard-Trojnacki-master
This commit is contained in:
+42
-2
@@ -141,11 +141,11 @@ public class TestCacheCollectionIds extends BaseTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangingCollectionByEditingConnectedBean() {
|
||||
public void testChangingCollectionByEditingConnectedCachedBean() {
|
||||
ResetBasicData.reset();
|
||||
|
||||
OCachedBean cachedBean = new OCachedBean();
|
||||
cachedBean.setName("hello");
|
||||
cachedBean.setName("hello1");
|
||||
|
||||
Ebean.save(cachedBean);
|
||||
awaitL2Cache();
|
||||
@@ -180,6 +180,46 @@ public class TestCacheCollectionIds extends BaseTestCase {
|
||||
Ebean.delete(cachedBean);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangingCollectionByEditingConnectedNotCachedBean() {
|
||||
ResetBasicData.reset();
|
||||
|
||||
OCachedBean cachedBean = new OCachedBean();
|
||||
cachedBean.setName("hello2");
|
||||
|
||||
Ebean.save(cachedBean);
|
||||
awaitL2Cache();
|
||||
|
||||
OCachedBean dummyToLoad = Ebean.find(OCachedBean.class, cachedBean.getId());
|
||||
assertEquals(0, dummyToLoad.getNotCachedChildren().size());
|
||||
|
||||
OBeanChild child1=new OBeanChild();
|
||||
child1.setCachedBean(cachedBean);
|
||||
Ebean.insert(child1);
|
||||
awaitL2Cache();
|
||||
dummyToLoad = Ebean.find(OCachedBean.class, cachedBean.getId());
|
||||
assertEquals(1, dummyToLoad.getNotCachedChildren().size());
|
||||
|
||||
OBeanChild child2=new OBeanChild();
|
||||
child2.setCachedBean(cachedBean);
|
||||
Ebean.insert(child2);
|
||||
awaitL2Cache();
|
||||
dummyToLoad = Ebean.find(OCachedBean.class, cachedBean.getId());
|
||||
assertEquals(2, dummyToLoad.getNotCachedChildren().size());
|
||||
|
||||
Ebean.delete(child2);
|
||||
awaitL2Cache();
|
||||
dummyToLoad = Ebean.find(OCachedBean.class, cachedBean.getId());
|
||||
assertEquals(1, dummyToLoad.getNotCachedChildren().size());
|
||||
|
||||
Ebean.delete(child1);
|
||||
awaitL2Cache();
|
||||
dummyToLoad = Ebean.find(OCachedBean.class, cachedBean.getId());
|
||||
assertEquals(0, dummyToLoad.getNotCachedChildren().size());
|
||||
|
||||
Ebean.delete(cachedBean);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* When updating a ManyToMany relations also the collection cache must be updated.
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package org.tests.model.basic;
|
||||
|
||||
import io.ebean.annotation.Cache;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.Table;
|
||||
|
||||
/**
|
||||
* Not cached bean (copy of {@link OCachedBeanChild}} without {@link Cache} annotation
|
||||
* for testing caching implementation for relations {@link Cache} and not {@link Cache}.
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "o_bean_child")
|
||||
public class OBeanChild {
|
||||
@Id
|
||||
Long id;
|
||||
|
||||
@ManyToOne
|
||||
OCachedBean cachedBean;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public OCachedBean getCachedBean() {
|
||||
return cachedBean;
|
||||
}
|
||||
|
||||
public void setCachedBean(OCachedBean cachedBean) {
|
||||
this.cachedBean = cachedBean;
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,9 @@ public class OCachedBean {
|
||||
@OneToMany(mappedBy = "cachedBean", cascade = CascadeType.ALL)
|
||||
List<OCachedBeanChild> children = new ArrayList<>();
|
||||
|
||||
@OneToMany(mappedBy = "cachedBean", cascade = CascadeType.ALL)
|
||||
List<OBeanChild> notCachedChildren = new ArrayList<>();
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
@@ -61,4 +64,12 @@ public class OCachedBean {
|
||||
public void setChildren(List<OCachedBeanChild> children) {
|
||||
this.children = children;
|
||||
}
|
||||
|
||||
public List<OBeanChild> getNotCachedChildren() {
|
||||
return notCachedChildren;
|
||||
}
|
||||
|
||||
public void setNotCachedChildren(List<OBeanChild> notCachedChildren) {
|
||||
this.notCachedChildren = notCachedChildren;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user