簡體   English   中英

ReactiveStreamCrudRepository 不從 postgres 數據庫返回數據

[英]ReactiveStreamCrudRepository not returning data from postgres DB

我是反應式編程和 micronaut 的新手。 我基本上是在研究簡單的 CRUD API。 我在 micronaut 上使用 Kotlin。 我不確定為什么數據庫沒有返回任何數據,我一直堅持這一點。

@JdbcRepository(dialect = Dialect.POSTGRES)
interface EmployeeCrudRepository: ReactiveStreamsCrudRepository<EmployeeMaster, Int>, EmployeeRepository {
}
interface EmployeeRepository {
    fun findByEmployeeIdAndTcin(employeeId: UUID, tcin: String): Mono<EmployeeMaster>
}
@MappedEntity
@Table(name="employee")
data class EmployeeMaster (

    @Id
    @Column(name = "transaction_id")
    val transactionId: Int,

    @Column(name = "employee_id")
    val employeeId: UUID,

    @Column(name = "item_id")
    val itemId: UUID,

    @Column(name = "tcin")
    val tcin: String
)
fun getEmployeeDetailsResponse(registryId: UUID, itemId: String) : Mono<EmployeeDetailsDTO> {

        return getEmployeeDetails(employeeId, itemId)
            .map {
                    employeeDetails -> EmployeeDetailsDTO(employeeDetails)
            }
            .switchIfEmpty {
                logger.info("No records found")
                Mono.just(ItemDetailsDTO())
            }
    }
fun getEmployeeDetails(employeeId: UUID, itemId: String) : Mono<EmployeeDetailsDTO> {

        return employeeRepository.findByEmployeeIdAndTcin(registryId = registryId, tcin = itemId)
            .map {
                    employeeDetails -> EmployeeDetailsDTO(employeeDetails)
            }
            .switchIfEmpty {
                logger.info("No records found")
                Mono.just(EmployeeDetailsDTO())
            }
    }

我對如何調試它以找到問題感到困惑。 憑據似乎都很好,我正在搜索的記錄存在於數據庫中。

flyway {
        // ./gradlew -Ppostgres_host=localhost -Ppostgres_ssl='' -Ppostgres_user=postgres -Ppostgres_pwd=postgres flywayMigrate -i
        url = "jdbc:postgresql://${postgres_host}:5432/postgres${postgres_ssl}"
        user = "${postgres_user}"
        password = "${postgres_pwd}"
        schemas = ['public']
    }

發現問題:

糟糕,我正在發送一些其他值,但沒有意識到該值不正確。 實施很好,並按預期返回響應。 我是第一次編寫 kotlin 和 micronaut 代碼,在我的腦海里,總是感覺實現是錯誤的。

查看使用 Micronaut Data R2DBC 訪問數據庫

您的示例中有很多地方看起來不對:

  • @JdbcRepository(dialect = Dialect.POSTGRES)應該是@R2dbcRepository
  • @Table@Column是 JPA。
    • @MappedEntity("employee")
    • @MappedProperty("item_id")

您可能不需要@MappedProperty("item_id") ,itemId 應該映射到 item_id。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM