This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
package org.redkale.source;
|
package org.redkale.source;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.lang.reflect.Array;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.function.*;
|
import java.util.function.*;
|
||||||
@@ -381,6 +382,17 @@ public final class EntityCache<T> {
|
|||||||
return rs;
|
return rs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public T[] update(final T value, final Collection<Attribute<T, Serializable>> attrs, final FilterNode node) {
|
||||||
|
if (value == null || node == null) return null;
|
||||||
|
T[] rms = this.list.stream().filter(node.createPredicate(this)).toArray(len -> (T[]) Array.newInstance(type, len));
|
||||||
|
for (T rs : rms) {
|
||||||
|
for (Attribute attr : attrs) {
|
||||||
|
attr.set(rs, attr.get(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return rms;
|
||||||
|
}
|
||||||
|
|
||||||
public <V> T update(final Serializable id, Attribute<T, V> attr, final V fieldValue) {
|
public <V> T update(final Serializable id, Attribute<T, V> attr, final V fieldValue) {
|
||||||
if (id == null) return null;
|
if (id == null) return null;
|
||||||
T rs = this.map.get(id);
|
T rs = this.map.get(id);
|
||||||
|
|||||||
Reference in New Issue
Block a user