我的连接配置:
@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()
);
}
}我的存储库:
public interface ReactiveOdometerRepository extends ReactiveCrudRepository<OdometerEntity, String> {
Flux<OdometerEntity> findTop1By(String name);
}我的实体:
@Setter
public class OdometerEntity {
@Getter
@Id
private String name;
@Getter
private int value;
}当我尝试查询DB时,它失败了:
@PostMapping(value = "/query", produces = MediaType.APPLICATION_JSON_VALUE)
public int get(@RequestBody RequestObject request) {
return odometerRepository.findTop1ByName(request.getName()).getValue();错误:
io.r2dbc.postgresql.PostgresqlConnectionFactory$PostgresConnectionException:
Cannot connect to r2dbc:postgresql://mydb.alfa/<unresolved>:5432不知道unresolved在里面做什么。
如何修复此错误?谢谢
发布于 2022-11-17 06:54:50
您的host变量错了。它应该只包含,只有,主机的名称或ip地址,而不是完整的。
所以,不要使用host("r2dbc:postgresql://mydb.alfa"),而是使用host("mydb.alfa")。
@Bean
public PostgresqlConnectionFactory connectionFactory() {
return new PostgresqlConnectionFactory(PostgresqlConnectionConfiguration.builder()
.host("mydb.alfa")
.port(5432)
.username("admin")
.database("postgres")
.password(password)
.build()
);
}发布于 2022-11-17 02:11:53
您必须在主机中指定主机名,而不是在其中指定url。
PostgresqlConnectionFactory(
PostgresqlConnectionConfiguration.builder()
.host("localhost")
.database("blogdb")
.username("user")
.password("password")
.codecRegistrar(
EnumCodec
.builder()
.withEnum("post_status", Post.Status.class)
.build()
)
.build()
)这是我的几个r2dbc连接工厂示例。
https://stackoverflow.com/questions/74453616
复制相似问题