Skip to content

Commit 525cf6a

Browse files
committed
Polishing.
1 parent 6ce2dd8 commit 525cf6a

File tree

3 files changed

+19
-7
lines changed

3 files changed

+19
-7
lines changed

src/main/java/org/springframework/data/jpa/repository/query/JSqlParserQueryEnhancer.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,10 +308,12 @@ public String detectAlias() {
308308
private String detectAlias(String query) {
309309

310310
if (ParsedType.MERGE.equals(this.parsedType)) {
311+
311312
Merge mergeStatement = parseSelectStatement(query, Merge.class);
312313
return detectAlias(mergeStatement);
313314

314315
} else if (ParsedType.SELECT.equals(this.parsedType)) {
316+
315317
Select selectStatement = parseSelectStatement(query);
316318

317319
/*
@@ -357,6 +359,7 @@ private String detectAlias(PlainSelect selectBody) {
357359
*/
358360
@Nullable
359361
private String detectAlias(Merge mergeStatement) {
362+
360363
Alias alias = mergeStatement.getUsingAlias();
361364
return alias == null ? null : alias.getName();
362365
}
@@ -385,6 +388,7 @@ public String createCountQueryFor(@Nullable String countProjection) {
385388
selectBody.setOrderByElements(null);
386389

387390
if (StringUtils.hasText(countProjection)) {
391+
388392
Function jSqlCount = getJSqlCount(Collections.singletonList(countProjection), false);
389393
selectBody.setSelectItems(Collections.singletonList(new SelectExpressionItem(jSqlCount)));
390394
return selectBody.toString();
@@ -399,6 +403,7 @@ public String createCountQueryFor(@Nullable String countProjection) {
399403
List<SelectItem> selectItems = selectBody.getSelectItems();
400404

401405
if (onlyASingleColumnProjection(selectItems)) {
406+
402407
SelectExpressionItem singleProjection = (SelectExpressionItem) selectItems.get(0);
403408

404409
Column column = (Column) singleProjection.getExpression();
@@ -443,6 +448,7 @@ public String getProjection() {
443448
SelectBody selectBody = selectStatement.getSelectBody();
444449

445450
if (selectStatement.getSelectBody() instanceof SetOperationList) {
451+
446452
SetOperationList setOperationList = (SetOperationList) selectStatement.getSelectBody();
447453
// using the first one since for setoperations the projection has to be the same
448454
selectBody = setOperationList.getSelects().get(0);

src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2816,15 +2816,17 @@ void mergeWithNativeStatement() {
28162816

28172817
flushTestUsers();
28182818

2819-
Optional<User> byIdUser = repository.findById(firstUser.getId());
2820-
assertThat(byIdUser).isPresent().map(User::getAge).get().isEqualTo(28);
2819+
assertThat(repository.findById(firstUser.getId())) //
2820+
.isPresent() //
2821+
.map(User::getAge).contains(28);
28212822

28222823
// when
28232824
repository.mergeNativeStatement();
28242825

28252826
// then
2826-
Optional<User> afterUpdate = repository.findById(firstUser.getId());
2827-
assertThat(afterUpdate).isPresent().map(User::getAge).get().isEqualTo(30);
2827+
assertThat(repository.findById(firstUser.getId())) //
2828+
.isPresent() //
2829+
.map(User::getAge).contains(30);
28282830
}
28292831

28302832
private Page<User> executeSpecWithSort(Sort sort) {

src/test/java/org/springframework/data/jpa/repository/query/QueryEnhancerUnitTests.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -926,6 +926,7 @@ void insertStatementIsProcessedSameAsDefault(String insertQuery) {
926926
@ParameterizedTest // GH-2641
927927
@MethodSource("mergeStatementWorksWithJSqlParserSource")
928928
void mergeStatementWorksWithJSqlParser(String query, String alias) {
929+
929930
StringQuery stringQuery = new StringQuery(query, true);
930931
QueryEnhancer queryEnhancer = QueryEnhancerFactory.forQuery(stringQuery);
931932

@@ -939,16 +940,19 @@ void mergeStatementWorksWithJSqlParser(String query, String alias) {
939940
}
940941

941942
public static Stream<Arguments> insertStatementIsProcessedSameAsDefaultSource() {
943+
942944
return Stream.of( //
943945
Arguments.of("INSERT INTO FOO(A) VALUES('A')"), //
944946
Arguments.of("INSERT INTO randomsecondTable(A,B,C,D) VALUES('A','B','C','D')") //
945947
);
946948
}
947949

948950
public static Stream<Arguments> mergeStatementWorksWithJSqlParserSource() {
949-
return Stream.of(Arguments.of(
950-
"merge into a using (select id, value from b) query on (a.id = query.id) when matched then update set a.value = value",
951-
"query"),
951+
952+
return Stream.of( //
953+
Arguments.of(
954+
"merge into a using (select id, value from b) query on (a.id = query.id) when matched then update set a.value = value",
955+
"query"),
952956
Arguments.of(
953957
"merge into a using (select id2, value from b) on (id = id2) when matched then update set a.value = value",
954958
null));

0 commit comments

Comments
 (0)