mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-11-13 06:42:57 +00:00
#2389 - redis.clients.jedis.exceptions.JedisDataException: ERR wrong number of arguments for 'mget' command
This commit is contained in:
1 parent
8ee67410f9
commit
5b07309f51
3 files changed
+26
-5
No files matched your search
+3
-2
@@ -349,12 +349,13 @@ final class BeanDescriptorCacheHelp<T> {
|
|||||||
for (Object id : ids) {
|
for (Object id : ids) {
|
||||||
keys.add(desc.cacheKey(id));
|
keys.add(desc.cacheKey(id));
|
||||||
}
|
}
|
||||||
|
if (ids.isEmpty()) {
|
||||||
|
return new BeanCacheResult<>();
|
||||||
|
}
|
||||||
Map<Object, Object> beanDataMap = beanCache.getAll(keys);
|
Map<Object, Object> beanDataMap = beanCache.getAll(keys);
|
||||||
if (beanLog.isTraceEnabled()) {
|
if (beanLog.isTraceEnabled()) {
|
||||||
beanLog.trace(" MGET {}({}) - hits:{}", cacheName, ids, beanDataMap.keySet());
|
beanLog.trace(" MGET {}({}) - hits:{}", cacheName, ids, beanDataMap.keySet());
|
||||||
}
|
}
|
||||||
|
|
||||||
BeanCacheResult<T> result = new BeanCacheResult<>();
|
BeanCacheResult<T> result = new BeanCacheResult<>();
|
||||||
for (Map.Entry<Object, Object> entry : beanDataMap.entrySet()) {
|
for (Map.Entry<Object, Object> entry : beanDataMap.entrySet()) {
|
||||||
CachedBeanData cachedBeanData = (CachedBeanData) entry.getValue();
|
CachedBeanData cachedBeanData = (CachedBeanData) entry.getValue();
|
||||||
|
|||||||
@@ -117,6 +117,9 @@ final class RedisCache implements ServerCache {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<Object, Object> getAll(Set<Object> keys) {
|
public Map<Object, Object> getAll(Set<Object> keys) {
|
||||||
|
if (keys.isEmpty()) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
long start = System.nanoTime();
|
long start = System.nanoTime();
|
||||||
Map<Object, Object> map = new LinkedHashMap<>();
|
Map<Object, Object> map = new LinkedHashMap<>();
|
||||||
List<Object> keyList = new ArrayList<>(keys);
|
List<Object> keyList = new ArrayList<>(keys);
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import org.junit.jupiter.api.Test;
|
|||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -18,6 +19,22 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||||||
|
|
||||||
class IntegrationTest {
|
class IntegrationTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void mget_when_emptyCollectionOfIds() {
|
||||||
|
|
||||||
|
List<RCust> f0 = new QRCust()
|
||||||
|
.setIdIn(Collections.emptyList())
|
||||||
|
.findList();
|
||||||
|
|
||||||
|
assertThat(f0).isEmpty();
|
||||||
|
|
||||||
|
List<RCust> f1 = new QRCust()
|
||||||
|
.id.in(Collections.emptyList())
|
||||||
|
.findList();
|
||||||
|
|
||||||
|
assertThat(f1).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void mput_via_setIdIn() throws InterruptedException {
|
void mput_via_setIdIn() throws InterruptedException {
|
||||||
|
|
||||||
@@ -187,8 +204,8 @@ class IntegrationTest {
|
|||||||
|
|
||||||
private List<Person> nameStartsWith(String pattern) {
|
private List<Person> nameStartsWith(String pattern) {
|
||||||
return new QPerson()
|
return new QPerson()
|
||||||
.name.istartsWith(pattern)
|
.name.istartsWith(pattern)
|
||||||
.setUseQueryCache(true)
|
.setUseQueryCache(true)
|
||||||
.findList();
|
.findList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user