[英]Extract data from Postgres DB to a JSON multilevel hierarchy structure
[英]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.