spring-projects / spring-data-relational

Spring Data Relational. Home of Spring Data JDBC and Spring Data R2DBC.
https://spring.io/projects/spring-data-jdbc
Apache License 2.0
740 stars 342 forks source link

Issue with Column Alias mapping to projection in R2dbcRepository Query #1757

Open jaykakkad69 opened 4 months ago

jaykakkad69 commented 4 months ago

Hi Team,

I have created this query in repository with appropriate java class for projection. When query is executed, i am getting null in walmartYearWeek.

@Query("""
           SELECT DISTINCT ON (com_yr_wk) com_yr_wk as walmart_year_week, com_start_date as walmart_week_start_date
           FROM calendar_meta
           WHERE calendar_date BETWEEN :startDate AND :endDate
           ORDER BY com_yr_wk
            """)
    Flux<WalmartCalendarWeek> findWalmartYearWeekDistinctByDateBetween(LocalDate startDate, LocalDate endDate);
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WalmartCalendarWeek {

        Integer walmartYearWeek;
        LocalDate walmartWeekStartDate;
}

Then, i tried following query and class and now the value is coming as expected in walmarYearWeek.

@Query("""
           SELECT DISTINCT ON (com_yr_wk) com_yr_wk as walmar_year_week, com_start_date as walmart_week_start_date
           FROM calendar_meta
           WHERE calendar_date BETWEEN :startDate AND :endDate
           ORDER BY com_yr_wk
            """)
    Flux<WalmarCalendarWeek> findWalmarYearWeekDistinctByDateBetween(LocalDate startDate, LocalDate endDate);
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WalmarCalendarWeek {

        Integer walmarYearWeek;
        LocalDate walmartWeekStartDate;
}

To conclude, walmart_year_week alias is not working but walmar_year_week or any other alias works

NOTE: Above issue is not there with org.springframework.boot:spring-boot-starter-parent:3.2.0.

I have created sample repo to reproduce this behaviour https://github.com/jaykakkad69/r2dbc-demo

Thanks.