mirror of
https://github.com/querydsl/querydsl.git
synced 2026-07-03 21:07:49 +08:00
#466 Fix distinct handling
This commit is contained in:
parent
385035ae40
commit
01980bede6
@ -96,7 +96,7 @@ public class DefaultQueryEngine implements QueryEngine {
|
||||
|
||||
private <T> List<T> distinct(List<T> list) {
|
||||
List<T> rv = new ArrayList<T>(list.size());
|
||||
if (!list.isEmpty() && list.get(0).getClass().isArray()) {
|
||||
if (!list.isEmpty() && list.get(0) != null && list.get(0).getClass().isArray()) {
|
||||
Set set = new HashSet(list.size());
|
||||
for (T o : list) {
|
||||
if (set.add(ImmutableList.copyOf((Object[])o))) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright 2011, Mysema Ltd
|
||||
*
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@ -34,7 +34,7 @@ public class DistinctTest extends AbstractQueryTest {
|
||||
assertEquals(list1, CollQueryFactory.from(intVar1, list1).list(intVar1));
|
||||
assertEquals(Arrays.asList(1, 2, 3, 4), CollQueryFactory.from(intVar1, list1).distinct().list(intVar1));
|
||||
assertEquals(Arrays.asList(2, 3, 4), CollQueryFactory.from(intVar2, list2).distinct().list(intVar2));
|
||||
|
||||
|
||||
assertEquals(Arrays.asList(2, 3, 4), CollQueryFactory.from(intVar2, list2).distinct().list(intVar2));
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ public class DistinctTest extends AbstractQueryTest {
|
||||
public void BothSources() {
|
||||
assertEquals(100, CollQueryFactory.from(intVar1, list1).from(intVar2, list2).list(intVar1, intVar2).size());
|
||||
assertEquals(12, CollQueryFactory.from(intVar1, list1).from(intVar2, list2).distinct().list(intVar1, intVar2).size());
|
||||
|
||||
|
||||
assertEquals(12, CollQueryFactory.from(intVar1, list1).from(intVar2, list2).distinct().list(intVar1, intVar2).size());
|
||||
}
|
||||
|
||||
@ -51,8 +51,13 @@ public class DistinctTest extends AbstractQueryTest {
|
||||
assertEquals(10, CollQueryFactory.from(intVar1, list1).count());
|
||||
assertEquals(4, CollQueryFactory.from(intVar1, list1).distinct().count());
|
||||
assertEquals(3, CollQueryFactory.from(intVar2, list2).distinct().count());
|
||||
|
||||
|
||||
assertEquals(3, CollQueryFactory.from(intVar2, list2).distinct().count());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void Null() {
|
||||
CollQueryFactory.from(intVar1, Arrays.asList(null, 1)).distinct().list(intVar1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user