/** * For a bean built from the cache this sets up its persistence context for future lazy loading * etc. */ private void setupContext(Object bean, PersistenceContext context) { if (context == null) { context = new DefaultPersistenceContext(); } // Not using a loadContext for beans coming out of L2 cache // so that means no batch lazy loading for these beans EntityBean entityBean = (EntityBean) bean; EntityBeanIntercept ebi = entityBean._ebean_getIntercept(); ebi.setPersistenceContext(context); Object id = desc.getId(entityBean); desc.contextPut(context, id, bean); }
private CachedManyIds createManyIds(BeanPropertyAssocMany<?> many, Object details) { BeanDescriptor<?> targetDescriptor = many.getTargetDescriptor(); List<Object> idList = new ArrayList<>(); Collection<?> actualDetails = BeanCollectionUtil.getActualEntries(details); if (actualDetails == null) { return null; } for (Object bean : actualDetails) { idList.add(targetDescriptor.getId((EntityBean) bean)); } return new CachedManyIds(idList); }
/** Put the bean into the bean cache. */ void beanCachePutDirect(EntityBean bean) { CachedBeanData beanData = beanExtractData(desc, bean); Object id = desc.getId(bean); if (beanLog.isDebugEnabled()) { beanLog.debug(" PUT {}({}) data:{}", cacheName, id, beanData); } getBeanCache().put(id, beanData); if (naturalKeyProperty != null) { Object naturalKey = beanData.getData(naturalKeyProperty); if (naturalKey != null) { if (natLog.isDebugEnabled()) { natLog.debug(" PUT {}({}, {})", cacheName, naturalKey, id); } naturalKeyCache.get().put(naturalKey, id); } } }