Skip to content

Commit 2ff63d4

Browse files
committed
DATAJDBC-518 - Allows the combination for CriteriaDefinition.
1 parent 4033eb3 commit 2ff63d4

File tree

3 files changed

+19
-18
lines changed

3 files changed

+19
-18
lines changed

spring-data-relational/src/main/java/org/springframework/data/relational/core/query/Criteria.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
* @author Mark Paluch
5252
* @author Oliver Drotbohm
5353
* @author Roman Chigvintsev
54+
* @author Jens Schauder
5455
* @since 2.0
5556
*/
5657
public class Criteria implements CriteriaDefinition {
@@ -59,7 +60,7 @@ public class Criteria implements CriteriaDefinition {
5960

6061
private final @Nullable Criteria previous;
6162
private final Combinator combinator;
62-
private final List<Criteria> group;
63+
private final List<CriteriaDefinition> group;
6364

6465
private final @Nullable SqlIdentifier column;
6566
private final @Nullable Comparator comparator;
@@ -70,12 +71,12 @@ private Criteria(SqlIdentifier column, Comparator comparator, @Nullable Object v
7071
this(null, Combinator.INITIAL, Collections.emptyList(), column, comparator, value, false);
7172
}
7273

73-
private Criteria(@Nullable Criteria previous, Combinator combinator, List<Criteria> group,
74+
private Criteria(@Nullable Criteria previous, Combinator combinator, List<CriteriaDefinition> group,
7475
@Nullable SqlIdentifier column, @Nullable Comparator comparator, @Nullable Object value) {
7576
this(previous, combinator, group, column, comparator, value, false);
7677
}
7778

78-
private Criteria(@Nullable Criteria previous, Combinator combinator, List<Criteria> group,
79+
private Criteria(@Nullable Criteria previous, Combinator combinator, List<CriteriaDefinition> group,
7980
@Nullable SqlIdentifier column, @Nullable Comparator comparator, @Nullable Object value, boolean ignoreCase) {
8081

8182
this.previous = previous;
@@ -87,7 +88,7 @@ private Criteria(@Nullable Criteria previous, Combinator combinator, List<Criter
8788
this.ignoreCase = ignoreCase;
8889
}
8990

90-
private Criteria(@Nullable Criteria previous, Combinator combinator, List<Criteria> group) {
91+
private Criteria(@Nullable Criteria previous, Combinator combinator, List<CriteriaDefinition> group) {
9192

9293
this.previous = previous;
9394
this.combinator = previous != null && previous.isEmpty() ? Combinator.INITIAL : combinator;
@@ -112,7 +113,7 @@ public static Criteria empty() {
112113
*
113114
* @return new {@link Criteria}.
114115
*/
115-
public static Criteria from(Criteria... criteria) {
116+
public static CriteriaDefinition from(CriteriaDefinition... criteria) {
116117

117118
Assert.notNull(criteria, "Criteria must not be null");
118119
Assert.noNullElements(criteria, "Criteria must not contain null elements");
@@ -125,7 +126,7 @@ public static Criteria from(Criteria... criteria) {
125126
*
126127
* @return new {@link Criteria}.
127128
*/
128-
public static Criteria from(List<Criteria> criteria) {
129+
public static CriteriaDefinition from(List<CriteriaDefinition> criteria) {
129130

130131
Assert.notNull(criteria, "Criteria must not be null");
131132
Assert.noNullElements(criteria, "Criteria must not contain null elements");
@@ -180,7 +181,7 @@ protected Criteria createCriteria(Comparator comparator, Object value) {
180181
* @return a new {@link Criteria} object.
181182
* @since 1.1
182183
*/
183-
public Criteria and(Criteria criteria) {
184+
public Criteria and(CriteriaDefinition criteria) {
184185

185186
Assert.notNull(criteria, "Criteria must not be null!");
186187

@@ -192,9 +193,8 @@ public Criteria and(Criteria criteria) {
192193
*
193194
* @param criteria criteria objects.
194195
* @return a new {@link Criteria} object.
195-
* @since 1.1
196196
*/
197-
public Criteria and(List<Criteria> criteria) {
197+
public Criteria and(List<CriteriaDefinition> criteria) {
198198

199199
Assert.notNull(criteria, "Criteria must not be null!");
200200

@@ -227,7 +227,7 @@ protected Criteria createCriteria(Comparator comparator, Object value) {
227227
* @return a new {@link Criteria} object.
228228
* @since 1.1
229229
*/
230-
public Criteria or(Criteria criteria) {
230+
public Criteria or(CriteriaDefinition criteria) {
231231

232232
Assert.notNull(criteria, "Criteria must not be null!");
233233

@@ -241,7 +241,7 @@ public Criteria or(Criteria criteria) {
241241
* @return a new {@link Criteria} object.
242242
* @since 1.1
243243
*/
244-
public Criteria or(List<Criteria> criteria) {
244+
public Criteria or(List<CriteriaDefinition> criteria) {
245245

246246
Assert.notNull(criteria, "Criteria must not be null!");
247247

@@ -312,7 +312,7 @@ private boolean doIsEmpty() {
312312
return false;
313313
}
314314

315-
for (Criteria criteria : group) {
315+
for (CriteriaDefinition criteria : group) {
316316

317317
if (!criteria.isEmpty()) {
318318
return false;
@@ -336,7 +336,7 @@ public Combinator getCombinator() {
336336
return combinator;
337337
}
338338

339-
public List<Criteria> getGroup() {
339+
public List<CriteriaDefinition> getGroup() {
340340
return group;
341341
}
342342

spring-data-relational/src/main/java/org/springframework/data/relational/core/query/CriteriaDefinition.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
* represent a group of nested criteria objects.
2828
*
2929
* @author Mark Paluch
30+
* @author Jens Schauder
3031
* @since 2.0
3132
*/
3233
public interface CriteriaDefinition {
@@ -45,7 +46,7 @@ static CriteriaDefinition empty() {
4546
*
4647
* @return new {@link Criteria}.
4748
*/
48-
static CriteriaDefinition from(Criteria... criteria) {
49+
static CriteriaDefinition from(CriteriaDefinition... criteria) {
4950

5051
Assert.notNull(criteria, "Criteria must not be null");
5152
Assert.noNullElements(criteria, "Criteria must not contain null elements");
@@ -59,7 +60,7 @@ static CriteriaDefinition from(Criteria... criteria) {
5960
* @return new {@link Criteria}.
6061
* @since 1.1
6162
*/
62-
static CriteriaDefinition from(List<Criteria> criteria) {
63+
static CriteriaDefinition from(List<CriteriaDefinition> criteria) {
6364

6465
Assert.notNull(criteria, "Criteria must not be null");
6566
Assert.noNullElements(criteria, "Criteria must not contain null elements");
@@ -80,7 +81,7 @@ static CriteriaDefinition from(List<Criteria> criteria) {
8081
*/
8182
boolean isGroup();
8283

83-
List<? extends CriteriaDefinition> getGroup();
84+
List<CriteriaDefinition> getGroup();
8485

8586
/**
8687
* @return the column/property name.

spring-data-relational/src/test/java/org/springframework/data/relational/core/query/CriteriaUnitTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void fromCriteria() {
3939

4040
Criteria nested1 = where("foo").isNotNull();
4141
Criteria nested2 = where("foo").isNull();
42-
Criteria criteria = Criteria.from(nested1, nested2);
42+
CriteriaDefinition criteria = Criteria.from(nested1, nested2);
4343

4444
assertThat(criteria.isGroup()).isTrue();
4545
assertThat(criteria.getGroup()).containsExactly(nested1, nested2);
@@ -51,7 +51,7 @@ public void fromCriteria() {
5151
public void fromCriteriaOptimized() {
5252

5353
Criteria nested = where("foo").is("bar").and("baz").isNotNull();
54-
Criteria criteria = Criteria.from(nested);
54+
CriteriaDefinition criteria = Criteria.from(nested);
5555

5656
assertThat(criteria).isSameAs(nested).hasToString("foo = 'bar' AND baz IS NOT NULL");
5757
}

0 commit comments

Comments
 (0)