首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R2DBC Postgres连接失败

R2DBC Postgres连接失败
EN

Stack Overflow用户
提问于 2022-11-16 00:03:29
回答 2查看 36关注 0票数 0

我的连接配置:

代码语言:javascript
复制
@Configuration
@EnableR2dbcRepositories
public class DatabaseConfiguration extends AbstractR2dbcConfiguration {

    @Bean
    public PostgresqlConnectionFactory connectionFactory() {
        return new PostgresqlConnectionFactory(PostgresqlConnectionConfiguration.builder()
            .host("r2dbc:postgresql://mydb.alfa")
            .port(5432)
            .username("admin")
            .database("postgres")
            .password(password)
            .build()
        );
    }
}

我的存储库:

代码语言:javascript
复制
public interface ReactiveOdometerRepository extends ReactiveCrudRepository<OdometerEntity, String> {
    Flux<OdometerEntity> findTop1By(String name);
}

我的实体:

代码语言:javascript
复制
@Setter
public class OdometerEntity {
    @Getter
    @Id
    private String name;
    @Getter
    private int value;
}

当我尝试查询DB时,它失败了:

代码语言:javascript
复制
@PostMapping(value = "/query", produces = MediaType.APPLICATION_JSON_VALUE)
public int get(@RequestBody RequestObject request) {
    return odometerRepository.findTop1ByName(request.getName()).getValue();

错误:

代码语言:javascript
复制
io.r2dbc.postgresql.PostgresqlConnectionFactory$PostgresConnectionException: 
Cannot connect to r2dbc:postgresql://mydb.alfa/<unresolved>:5432

不知道unresolved在里面做什么。

如何修复此错误?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-17 06:54:50

您的host变量错了。它应该只包含,只有,主机的名称或ip地址,而不是完整的。

所以,不要使用host("r2dbc:postgresql://mydb.alfa"),而是使用host("mydb.alfa")

代码语言:javascript
复制
@Bean
public PostgresqlConnectionFactory connectionFactory() {
    return new PostgresqlConnectionFactory(PostgresqlConnectionConfiguration.builder()
        .host("mydb.alfa")
        .port(5432)
        .username("admin")
        .database("postgres")
        .password(password)
        .build()
    );
}
票数 0
EN

Stack Overflow用户

发布于 2022-11-17 02:11:53

您必须在主机中指定主机名,而不是在其中指定url。

代码语言:javascript
复制
 PostgresqlConnectionFactory(
     PostgresqlConnectionConfiguration.builder()
         .host("localhost")
         .database("blogdb")
         .username("user")
         .password("password")
         .codecRegistrar(
              EnumCodec
                 .builder()
                 .withEnum("post_status", Post.Status.class)
                 .build()
         )
         .build()
)

这是我的几个r2dbc连接工厂示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74453616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档