spring-projects / spring-data-r2dbc

Provide support to increase developer productivity in Java when using Reactive Relational Database Connectivity. Uses familiar Spring concepts such as a DatabaseClient for core API usage and lightweight repository style data access.
Apache License 2.0
708 stars 132 forks source link

Add support for Querydsl [DATACMNS-1849] #529

Open spring-projects-issues opened 3 years ago

spring-projects-issues commented 3 years ago

iron2414 opened DATACMNS-1849 and commented

Observed vs. expected behavior

When I'm trying to create a User repository, which is extending ReactiveCrudRepository and ReactiveQuerydslPredicateExecutor, then it says

org.springframework.data.mapping.PropertyReferenceException: No property findAll found for type User!. 

If I remove the ReactiveQuerydslPredicateExecutor extension, then everything is working fine.

Steps to reproduce

User entity:

 

@Table("user")
@AllArgsConstructor
@NoArgsConstructor
@Data
@QueryEntity
public class User {

    @Id
    Long id;

    String name;

    String email;
}

 

 

User repository:

@Repository
public interface UserRepository extends ReactiveSortingPagingRepository<User, Long>, ReactiveQuerydslPredicateExecutor<User> {
}

pom.xml

 

<dependencies>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-webflux</artifactId>
           <version>2.3.7.RELEASE</version>
           <exclusions>
               <exclusion>
                   <artifactId>slf4j-api</artifactId>
                   <groupId>org.slf4j</groupId>
               </exclusion>
           </exclusions>
       </dependency>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-data-r2dbc</artifactId>
           <version>2.3.7.RELEASE</version>
           <exclusions>
               <exclusion>
                   <artifactId>reactor-core</artifactId>
                   <groupId>io.projectreactor</groupId>
               </exclusion>
           </exclusions>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-jdbc</artifactId>
           <version>5.3.2</version>
           <exclusions>
               <exclusion>
                   <artifactId>spring-beans</artifactId>
                   <groupId>org.springframework</groupId>
               </exclusion>
               <exclusion>
                   <artifactId>spring-tx</artifactId>
                   <groupId>org.springframework</groupId>
               </exclusion>
               <exclusion>
                   <artifactId>spring-core</artifactId>
                   <groupId>org.springframework</groupId>
               </exclusion>
           </exclusions>
       </dependency>
       <dependency>
           <groupId>com.github.jasync-sql</groupId>
           <artifactId>jasync-r2dbc-mysql</artifactId>
           <version>1.1.4</version>
           <exclusions>
               <exclusion>
                   <artifactId>r2dbc-spi</artifactId>
                   <groupId>io.r2dbc</groupId>
               </exclusion>
               <exclusion>
                   <artifactId>reactor-core</artifactId>
                   <groupId>io.projectreactor</groupId>
               </exclusion>
               <exclusion>
                   <artifactId>kotlin-stdlib</artifactId>
                   <groupId>org.jetbrains.kotlin</groupId>
               </exclusion>
               <exclusion>
                   <artifactId>kotlin-stdlib-common</artifactId>
                   <groupId>org.jetbrains.kotlin</groupId>
               </exclusion>
               <exclusion>
                   <artifactId>netty-handler</artifactId>
                   <groupId>io.netty</groupId>
               </exclusion>
               <exclusion>
                   <artifactId>netty-transport</artifactId>
                   <groupId>io.netty</groupId>
               </exclusion>
               <exclusion>
                   <artifactId>slf4j-api</artifactId>
                   <groupId>org.slf4j</groupId>
               </exclusion>
           </exclusions>
       </dependency>
       <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <version>1.18.16</version>
           <scope>provided</scope>
       </dependency>
       <dependency>
           <groupId>com.querydsl</groupId>
           <artifactId>querydsl-sql-spring</artifactId>
           <version>4.4.0</version>
       </dependency>
       <dependency>
           <groupId>org.jetbrains.kotlin</groupId>
           <artifactId>kotlin-reflect</artifactId>
           <version>1.1.0</version>
       </dependency>
   </dependencies>

 

application properties for database connection (xampp)

 

spring.r2dbc.url=r2dbc:mysql://127.0.0.1:3306/fitman
spring.r2dbc.username=root
spring.r2dbc.password=

Environment

Querydsl version:

Database: Mysql, connecting with r2dbc.

JDK: 1.8.211


Affects: 2.3.6 (Neumann SR6)

mp911de commented 3 years ago

There's no support for Querydsl for R2DBC yet. Depends on https://github.com/querydsl/querydsl/issues/2468.