mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-11-12 22:41:35 +00:00
FIX: OrderdColums did not work properly with cache
This commit is contained in:
1 parent
1e34d65675
commit
f2a578cd76
5 files changed
+215
-6
No files matched your search
+6
-1
@@ -294,8 +294,13 @@ final class BeanDescriptorCacheHelp<T> {
|
||||
|
||||
List<Object> idList = entry.getIdList();
|
||||
bc.checkEmptyLazyLoad();
|
||||
int i = 0;
|
||||
for (Object id : idList) {
|
||||
many.add(bc, targetDescriptor.createReference(readOnly, id, persistenceContext));
|
||||
final EntityBean ref = targetDescriptor.createReference(readOnly, id, persistenceContext);
|
||||
if (many.hasOrderColumn()) {
|
||||
ref._ebean_getIntercept().setSortOrder(++i);
|
||||
}
|
||||
many.add(bc, ref);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
import static io.ebeaninternal.server.persist.DmlUtil.isNullOrZero;
|
||||
@@ -165,11 +164,15 @@ public final class SaveManyBeans extends SaveManyBase {
|
||||
if (many.hasJoinTable()) {
|
||||
skipSavingThisBean = targetDescriptor.isReference(ebi);
|
||||
} else {
|
||||
if (orderColumn != null && !Objects.equals(sortOrder, orderColumn.getValue(detail))) {
|
||||
orderColumn.setValue(detail, sortOrder);
|
||||
ebi.setDirty(true);
|
||||
int originalOrder = 0;
|
||||
if (orderColumn != null) {
|
||||
originalOrder = detail._ebean_getIntercept().getSortOrder();
|
||||
if (sortOrder != originalOrder) {
|
||||
detail._ebean_intercept().setSortOrder(sortOrder);
|
||||
ebi.setDirty(true);
|
||||
}
|
||||
}
|
||||
if (targetDescriptor.isReference(ebi)) {
|
||||
if (targetDescriptor.isReference(ebi) && originalOrder == 0) {
|
||||
// we can skip this one
|
||||
skipSavingThisBean = true;
|
||||
} else if (ebi.isNewOrDirty()) {
|
||||
|
||||
Reference in new issue
Block a user