Skip to content

Commit f895e06

Browse files
committed
Add utility method to build column lists
1 parent c855aea commit f895e06

File tree

6 files changed

+19
-8
lines changed

6 files changed

+19
-8
lines changed

src/main/java/org/mybatis/dynamic/sql/BasicColumn.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Copyright 2016-2017 the original author or authors.
2+
* Copyright 2016-2019 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -66,4 +66,15 @@ default String renderWithTableAndColumnAlias(TableAliasCalculator tableAliasCalc
6666
return alias().map(a -> nameAndTableAlias + " as " + a) //$NON-NLS-1$
6767
.orElse(nameAndTableAlias);
6868
}
69+
70+
/**
71+
* Utility method to make it easier to build column lists for methods that require an
72+
* array rather than the varargs method.
73+
*
74+
* @param columns list of BasicColumn
75+
* @return an array of BasicColumn
76+
*/
77+
static BasicColumn[] columnList(BasicColumn...columns) {
78+
return columns;
79+
}
6980
}

src/site/markdown/docs/mybatis3.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ We also envision creating a static field for a reusable list of columns for a se
148148

149149
```java
150150
static BasicColumn[] selectList =
151-
new BasicColumn[] {id.as("A_ID"), firstName, lastName, birthDate, employed, occupation, addressId};
151+
BasicColumn.columnList(id.as("A_ID"), firstName, lastName, birthDate, employed, occupation, addressId);
152152
```
153153

154154
The `selectOne` method can be used to implement a generalized select one method:

src/test/java/examples/animal/data/AnimalDataTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1786,7 +1786,7 @@ public void testUpdateWithAddAndSubtract() {
17861786
assertThat(rows).isEqualTo(1);
17871787

17881788
AnimalData record = MyBatis3Utils.selectOne(mapper::selectOne,
1789-
new BasicColumn[] {id, bodyWeight, brainWeight},
1789+
BasicColumn.columnList(id, bodyWeight, brainWeight),
17901790
animalData,
17911791
c -> c.where(id, isEqualTo(1))
17921792
);
@@ -1819,7 +1819,7 @@ public void testUpdateWithMultiplyAndDivide() {
18191819
assertThat(rows).isEqualTo(1);
18201820

18211821
AnimalData record = MyBatis3Utils.selectOne(mapper::selectOne,
1822-
new BasicColumn[] {id, bodyWeight, brainWeight},
1822+
BasicColumn.columnList(id, bodyWeight, brainWeight),
18231823
animalData,
18241824
c -> c.where(id, isEqualTo(1))
18251825
);

src/test/java/examples/schema_supplier/UserMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public interface UserMapper {
4646
List<User> selectMany(SelectStatementProvider selectStatement);
4747

4848
default List<User> select(MyBatis3SelectCompleter completer) {
49-
return MyBatis3Utils.selectList(this::selectMany, new BasicColumn[] {id, name}, user, completer);
49+
return MyBatis3Utils.selectList(this::selectMany, BasicColumn.columnList(id, name), user, completer);
5050
}
5151

5252
default int insert(User record) {

src/test/java/examples/simple/PersonMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public interface PersonMapper {
8484
Optional<PersonRecord> selectOne(SelectStatementProvider selectStatement);
8585

8686
static BasicColumn[] selectList =
87-
new BasicColumn[] {id.as("A_ID"), firstName, lastName, birthDate, employed, occupation, addressId};
87+
BasicColumn.columnList(id.as("A_ID"), firstName, lastName, birthDate, employed, occupation, addressId);
8888

8989
@UpdateProvider(type=SqlProviderAdapter.class, method="update")
9090
int update(UpdateStatementProvider updateStatement);

src/test/java/examples/simple/PersonWithAddressMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ public interface PersonWithAddressMapper {
7171
Optional<PersonWithAddress> selectOne(SelectStatementProvider selectStatement);
7272

7373
static BasicColumn[] selectList =
74-
new BasicColumn[] {id.as("A_ID"), firstName, lastName, birthDate, employed, occupation, address.id,
75-
address.streetAddress, address.city, address.state};
74+
BasicColumn.columnList(id.as("A_ID"), firstName, lastName, birthDate, employed, occupation, address.id,
75+
address.streetAddress, address.city, address.state);
7676

7777
default Optional<PersonWithAddress> selectOne(MyBatis3SelectCompleter completer) {
7878
CompletableQuery<SelectModel> start = SqlBuilder.select(selectList).from(person)

0 commit comments

Comments
 (0)