diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanRequest.java b/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanRequest.java index a60dfc3f1..65be9a1c6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/LoadBeanRequest.java @@ -120,8 +120,7 @@ public final class LoadBeanRequest extends LoadRequest { BeanDescriptor desc = loadBuffer.getBeanDescriptor(); // collect Ids and maybe load bean cache for (Object bean : list) { - EntityBean loadedBean = (EntityBean) bean; - loadedIds.add(desc.getId(loadedBean)); + loadedIds.add(desc.beanId(bean)); } if (loadCache) { desc.cacheBeanPutAll(list); diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/LoadManyRequest.java b/ebean-core/src/main/java/io/ebeaninternal/api/LoadManyRequest.java index 8975af534..0327a5199 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/LoadManyRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/LoadManyRequest.java @@ -141,8 +141,7 @@ public final class LoadManyRequest extends LoadRequest { logger.debug("BeanCollection after lazy load was empty. type:" + ownerBean.getClass().getName() + " id:" + parentId + " owner:" + ownerBean); } } else if (isLoadCache() && many.isUseCache()) { - Object parentId = desc.getId(bc.getOwnerBean()); - desc.cacheManyPropPut(many, bc, parentId); + desc.cacheManyPropPut(many, bc, desc.getId(bc.getOwnerBean())); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java index 108e7e95f..e2e2709f4 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java @@ -69,12 +69,10 @@ final class DefaultBeanLoader { } Object parentId = parentDesc.getId(parentBean); - if (pc == null) { pc = new DefaultPersistenceContext(); parentDesc.contextPut(pc, parentId, parentBean); } - boolean useManyIdCache = beanCollection != null && parentDesc.isManyPropCaching() && many.isUseCache(); if (useManyIdCache) { Boolean readOnly = null; @@ -87,7 +85,6 @@ final class DefaultBeanLoader { } SpiQuery query = server.createQuery(parentDesc.getBeanType()); - if (refresh) { // populate a new collection BeanCollection emptyCollection = many.createEmpty(parentBean); @@ -98,7 +95,6 @@ final class DefaultBeanLoader { } query.select(parentDesc.getIdBinder().getIdProperty()); - if (onlyIds) { query.fetch(many.getName(), many.getTargetIdProperty()); } else { @@ -113,7 +109,6 @@ final class DefaultBeanLoader { query.setMode(Mode.LAZYLOAD_MANY); query.setLazyLoadManyPath(many.getName()); query.setPersistenceContext(pc); - if (ebi.isReadOnly()) { query.setReadOnly(true); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java index 7cdaf95df..d2c95d76c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java @@ -352,7 +352,7 @@ final class BeanDescriptorCacheHelp { BeanDescriptor targetDescriptor = many.getTargetDescriptor(); List idList = new ArrayList<>(actualDetails.size()); for (Object bean : actualDetails) { - idList.add(targetDescriptor.getId((EntityBean) bean)); + idList.add(targetDescriptor.beanId(bean)); } return new CachedManyIds(idList); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java index 37e5b7990..d07d94843 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java @@ -869,7 +869,7 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc implements ST draftVal.size(); Collection actualDetails = draftVal.getActualDetails(); for (T bean : actualDetails) { - Object id = targetDescriptor.getId((EntityBean) bean); + Object id = targetDescriptor.beanId(bean); T liveBean = liveBeansAsMap.remove(id); if (isManyToMany()) { @@ -899,7 +899,7 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc implements ST Collection liveBeans = liveVal.getActualDetails(); Map liveMap = new LinkedHashMap<>(); for (Object liveBean : liveBeans) { - Object id = targetDescriptor.getId((EntityBean) liveBean); + Object id = targetDescriptor.beanId(liveBean); liveMap.put(id, (T) liveBean); } return liveMap; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java index 768cba19c..dd029000b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java @@ -195,7 +195,7 @@ public class BeanPropertyAssocOne extends BeanPropertyAssoc implements STr } else { Object assocBean = getValue(bean); if (assocBean != null) { - Object parentId = targetDescriptor.getId((EntityBean) assocBean); + Object parentId = targetDescriptor.beanId(assocBean); if (parentId != null) { changeSet.addManyRemove(targetDescriptor, relationshipProperty.getName(), parentId); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java index f4a70f763..e48a7dd9d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java @@ -225,7 +225,7 @@ public final class SaveManyBeans extends SaveManyBase { detailBean = ((Map.Entry) detailBean).getValue(); } if (detailBean instanceof EntityBean) { - Object id = targetDescriptor.getId((EntityBean) detailBean); + Object id = targetDescriptor.beanId(detailBean); if (!isNullOrZero(id)) { // remember the Id (other details not in the collection) will be removed detailIds.add(id);