Skip to content

Commit 0618ff7

Browse files
committed
DATAJDBC-335 - Address review comments.
1 parent dce7a48 commit 0618ff7

File tree

5 files changed

+50
-28
lines changed

5 files changed

+50
-28
lines changed

spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/AssignValue.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,14 @@ public Expression getValue() {
6565
return value;
6666
}
6767

68-
/*
68+
/*
6969
* (non-Javadoc)
7070
* @see java.lang.Object#toString()
7171
*/
7272
@Override
7373
public String toString() {
7474

75-
StringBuilder builder = new StringBuilder(32);
75+
StringBuilder builder = new StringBuilder();
7676
return builder.append(this.column).append(" = ").append(this.value).toString();
7777
}
7878
}

spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/DefaultUpdate.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class DefaultUpdate implements Update {
4040
this.where = where != null ? new Where(where) : null;
4141
}
4242

43-
/*
43+
/*
4444
* (non-Javadoc)
4545
* @see org.springframework.data.relational.core.sql.Visitable#visit(org.springframework.data.relational.core.sql.Visitor)
4646
*/
@@ -61,14 +61,14 @@ public void visit(Visitor visitor) {
6161
visitor.leave(this);
6262
}
6363

64-
/*
64+
/*
6565
* (non-Javadoc)
6666
* @see java.lang.Object#toString()
6767
*/
6868
@Override
6969
public String toString() {
7070

71-
StringBuilder builder = new StringBuilder(32);
71+
StringBuilder builder = new StringBuilder();
7272
builder.append("UPDATE ").append(table);
7373

7474
if (!assignments.isEmpty()) {

spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/DefaultUpdateBuilder.java

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@
1616
package org.springframework.data.relational.core.sql;
1717

1818
import java.util.ArrayList;
19+
import java.util.Arrays;
20+
import java.util.Collection;
1921
import java.util.List;
2022

2123
import org.springframework.data.relational.core.sql.UpdateBuilder.UpdateAssign;
22-
import org.springframework.data.relational.core.sql.UpdateBuilder.UpdateAssignAnd;
2324
import org.springframework.data.relational.core.sql.UpdateBuilder.UpdateWhere;
2425
import org.springframework.data.relational.core.sql.UpdateBuilder.UpdateWhereAndOr;
2526
import org.springframework.lang.Nullable;
@@ -31,13 +32,13 @@
3132
* @author Mark Paluch
3233
* @since 1.1
3334
*/
34-
class DefaultUpdateBuilder implements UpdateBuilder, UpdateWhere, UpdateWhereAndOr, UpdateAssign, UpdateAssignAnd {
35+
class DefaultUpdateBuilder implements UpdateBuilder, UpdateWhere, UpdateWhereAndOr, UpdateAssign {
3536

3637
private Table table;
3738
private List<Assignment> assignments = new ArrayList<>();
3839
private @Nullable Condition where;
3940

40-
/*
41+
/*
4142
* (non-Javadoc)
4243
* @see org.springframework.data.relational.core.sql.UpdateBuilder#table(org.springframework.data.relational.core.sql.Table)
4344
*/
@@ -51,7 +52,7 @@ public UpdateAssign table(Table table) {
5152
return this;
5253
}
5354

54-
/*
55+
/*
5556
* (non-Javadoc)
5657
* @see org.springframework.data.relational.core.sql.UpdateBuilder.UpdateAssign#set(org.springframework.data.relational.core.sql.Assignment)
5758
*/
@@ -65,16 +66,33 @@ public DefaultUpdateBuilder set(Assignment assignment) {
6566
return this;
6667
}
6768

68-
/*
69+
/*
6970
* (non-Javadoc)
70-
* @see org.springframework.data.relational.core.sql.UpdateBuilder.UpdateAssignAnd#and(org.springframework.data.relational.core.sql.Assignment)
71+
* @see org.springframework.data.relational.core.sql.UpdateBuilder.UpdateAssign#set(org.springframework.data.relational.core.sql.Assignment...)
7172
*/
7273
@Override
73-
public DefaultUpdateBuilder and(Assignment assignment) {
74-
return set(assignment);
74+
public UpdateWhere set(Assignment... assignments) {
75+
76+
Assert.notNull(assignments, "Assignment must not be null!");
77+
78+
return set(Arrays.asList(assignments));
79+
}
80+
81+
/*
82+
* (non-Javadoc)
83+
* @see org.springframework.data.relational.core.sql.UpdateBuilder.UpdateAssign#set(java.util.Collection)
84+
*/
85+
@Override
86+
public UpdateWhere set(Collection<? extends Assignment> assignments) {
87+
88+
Assert.notNull(assignments, "Assignment must not be null!");
89+
90+
this.assignments.addAll(assignments);
91+
92+
return this;
7593
}
7694

77-
/*
95+
/*
7896
* (non-Javadoc)
7997
* @see org.springframework.data.relational.core.sql.UpdateBuilder.UpdateWhere#where(org.springframework.data.relational.core.sql.Condition)
8098
*/
@@ -88,7 +106,7 @@ public UpdateWhereAndOr where(Condition condition) {
88106
return this;
89107
}
90108

91-
/*
109+
/*
92110
* (non-Javadoc)
93111
* @see org.springframework.data.relational.core.sql.UpdateBuilder.UpdateWhereAndOr#and(org.springframework.data.relational.core.sql.Condition)
94112
*/
@@ -102,7 +120,7 @@ public UpdateWhereAndOr and(Condition condition) {
102120
return this;
103121
}
104122

105-
/*
123+
/*
106124
* (non-Javadoc)
107125
* @see org.springframework.data.relational.core.sql.UpdateBuilder.UpdateWhereAndOr#or(org.springframework.data.relational.core.sql.Condition)
108126
*/
@@ -116,7 +134,7 @@ public UpdateWhereAndOr or(Condition condition) {
116134
return this;
117135
}
118136

119-
/*
137+
/*
120138
* (non-Javadoc)
121139
* @see org.springframework.data.relational.core.sql.UpdateBuilder.BuildUpdate#build()
122140
*/

spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/UpdateBuilder.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package org.springframework.data.relational.core.sql;
1717

18+
import java.util.Collection;
19+
1820
/**
1921
* Entry point to construct an {@link Update} statement.
2022
*
@@ -44,22 +46,25 @@ interface UpdateAssign {
4446
* @return {@code this} builder.
4547
* @see Assignment
4648
*/
47-
UpdateAssignAnd set(Assignment assignment);
48-
}
49+
UpdateWhere set(Assignment assignment);
4950

50-
/**
51-
* Interface exposing {@code SET} methods.
52-
*/
53-
interface UpdateAssignAnd extends UpdateWhere {
51+
/**
52+
* Apply one or more {@link Assignment SET assignments}.
53+
*
54+
* @param assignments the {@link Assignment column assignments}.
55+
* @return {@code this} builder.
56+
* @see Assignment
57+
*/
58+
UpdateWhere set(Assignment... assignments);
5459

5560
/**
56-
* Apply a {@link Assignment SET assignment}.
61+
* Apply one or more {@link Assignment SET assignments}.
5762
*
58-
* @param assignment a single {@link Assignment column assignment}.
63+
* @param assignments the {@link Assignment column assignments}.
5964
* @return {@code this} builder.
6065
* @see Assignment
6166
*/
62-
UpdateAssignAnd and(Assignment assignment);
67+
UpdateWhere set(Collection<? extends Assignment> assignments);
6368
}
6469

6570
/**

spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/render/UpdateRendererUnitTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ public void shouldRenderMultipleColumnUpdate() {
5151
Column bar = table.column("bar");
5252

5353
Update update = StatementBuilder.update(table) //
54-
.set(foo.set(SQL.bindMarker())) //
55-
.and(bar.set(SQL.bindMarker())) //
54+
.set(foo.set(SQL.bindMarker()), bar.set(SQL.bindMarker())) //
5655
.build();
5756

5857
assertThat(SqlRenderer.toString(update)).isEqualTo("UPDATE mytable SET mytable.foo = ?, mytable.bar = ?");

0 commit comments

Comments
 (0)