Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set up database connection in r2dbc?

How to set up a PostgreSQL database connection in r2dbc Spring boot project?

I have tried the below configuration, it connects to the database but it's not returning any values

@Configuration
@EnableR2dbcRepositories
public class DatabaseConfig extends AbstractR2dbcConfiguration {

    @Override
    public ConnectionFactory connectionFactory() {
        return ConnectionFactories.get("r2dbc:postgresql://localhost:5432/sample");
    }

    /*@Override
    public ConnectionFactory connectionFactory() {
        return ConnectionFactories.get(new PostgresqlConnectionFactory(
                PostgresqlConnectionConfiguration.builder()
                .host("localhost")
                .port(5432)
                .username("postgres")
                .password("thirumal")
                .database("sample")
                .build()););
    }*/

}

application.properties

spring.r2dbc.url=r2dbc:postgresql://localhost:5432/sample
spring.r2dbc.username=postgres
spring.r2dbc.password=thirumal
spring.r2dbc.pool.enabled=true

Model

@Data@NoArgsConstructor@AllArgsConstructor@Getter@Setter
@ToString
@Table("public.test")
public class Test implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 4205798689305488147L;

    @Id//@Column("id")
    private Long id;
    
    private String name;
    
}

Repository

public interface TestRepository extends ReactiveCrudRepository<Test, Long> {

}

REST CONTROLLER:

@GetMapping("/test")
public Mono<Test> test() {
   testRepository.findById(3L).subscribe(v->System.out.println("Value: " + v.toString()));
   return testRepository.findById(3L);
}

It prints the output in the console but in the JSON, I get only empty braces {}

What is the correct way to configure? Any other configuration is required?

like image 598
Thirumal Avatar asked Oct 27 '25 02:10

Thirumal


1 Answers

I found the problem. It's Lombok library, I didn't install it in eclipse.

When I created the getter and setter method manually it worked.

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

Then, I set up the lombok and used @getter and @setter and it worked.

like image 162
Thirumal Avatar answered Oct 29 '25 17:10

Thirumal



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!