ialbert 2025-11-14 18:15:53 +03:00
parent 9b0de88c46
commit 4beff10362
2 changed files with 16 additions and 21 deletions

View file

@ -1,9 +1,7 @@
package ru.spcex.platform.imdg.iml.hazelcast.adapter; package ru.spcex.platform.imdg.iml.hazelcast.adapter;
import com.hazelcast.query.PagingPredicate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -14,6 +12,7 @@ import com.hazelcast.core.ILock;
import com.hazelcast.core.IMap; import com.hazelcast.core.IMap;
import com.hazelcast.core.IdGenerator; import com.hazelcast.core.IdGenerator;
import com.hazelcast.projection.Projections; import com.hazelcast.projection.Projections;
import com.hazelcast.query.PagingPredicate;
import com.hazelcast.query.Predicate; import com.hazelcast.query.Predicate;
import com.hazelcast.query.Predicates; import com.hazelcast.query.Predicates;
import com.hazelcast.query.SqlPredicate; import com.hazelcast.query.SqlPredicate;
@ -81,7 +80,7 @@ public class ImdgHazelcast<T extends SpcexObjectBase> implements Imdg<T> {
if (paramT.getId() == null) { if (paramT.getId() == null) {
paramT.setId(idGenerator.newId()); paramT.setId(idGenerator.newId());
} }
map.put(paramT.getId(), paramT); map.set(paramT.getId(), paramT);
return paramT.getId(); return paramT.getId();
} }
@ -106,28 +105,20 @@ public class ImdgHazelcast<T extends SpcexObjectBase> implements Imdg<T> {
@Override @Override
public void putAll(Map<Long, T> m) { public void putAll(Map<Long, T> m) {
map.putAll(m); for (Map.Entry<Long, T> entry : m.entrySet()) {
map.set(entry.getKey(), entry.getValue());
}
} }
@Deprecated
@Override @Override
public void putAll(Map<Long, T> m, int batchSize) { public void putAll(Map<Long, T> m, int batchSize) {
if (batchSize <= 0) throw new IllegalArgumentException("illegal batch size " + batchSize); putAll(m);
Map<Long, T> batch = new HashMap<>(batchSize);
for (Map.Entry<Long, T> entry : m.entrySet()) {
batch.put(entry.getKey(), entry.getValue());
if (batch.size() >= batchSize) {
map.putAll(batch);
batch.clear();
}
}
if (!batch.isEmpty()) {
map.putAll(batch);
}
} }
@Override @Override
public void update(T paramT) { public void update(T paramT) {
map.put(paramT.getId(), paramT); map.set(paramT.getId(), paramT);
} }
@Override @Override

View file

@ -1,5 +1,11 @@
package ru.spcex.platform.imdg.iml.hazelcast.adapter; package ru.spcex.platform.imdg.iml.hazelcast.adapter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.ILock; import com.hazelcast.core.ILock;
import com.hazelcast.core.IdGenerator; import com.hazelcast.core.IdGenerator;
@ -17,8 +23,6 @@ import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuild
import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateHazelcast; import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateHazelcast;
import ru.spcex.platform.utils.log.ExceptionUtils; import ru.spcex.platform.utils.log.ExceptionUtils;
import java.util.*;
public class ImdgTransactionalHazelcast<T extends SpcexObjectBase> implements Imdg<T> { public class ImdgTransactionalHazelcast<T extends SpcexObjectBase> implements Imdg<T> {
private final Logger log = LoggerFactory.getLogger(getClass()); private final Logger log = LoggerFactory.getLogger(getClass());
private IdGenerator idGenerator; private IdGenerator idGenerator;
@ -39,7 +43,7 @@ public class ImdgTransactionalHazelcast<T extends SpcexObjectBase> implements Im
if (paramT.getId() == null) { if (paramT.getId() == null) {
paramT.setId(idGenerator.newId()); paramT.setId(idGenerator.newId());
} }
map.put(paramT.getId(), paramT); map.set(paramT.getId(), paramT);
return paramT.getId(); return paramT.getId();
} }
@ -64,7 +68,7 @@ public class ImdgTransactionalHazelcast<T extends SpcexObjectBase> implements Im
@Override @Override
public void update(T paramT) { public void update(T paramT) {
map.put(paramT.getId(), paramT); map.set(paramT.getId(), paramT);
} }
@Override @Override