gpt4 book ai didi

mongodb - webflux 返回一个空对象列表

转载 作者:行者123 更新时间:2023-12-02 12:32:45 28 4
gpt4 key购买 nike

我是使用 Spring 编程的新手。我正在使用 Reactor/Webflux 项目测试响应式(Reactive)编程。

数据库注册通过 Post 可以很好地工作。

但是每次 API 调用 Get Mono 或 Flux 我都会得到一个空对象列表。
你能给我一个解决方案吗?

我在 Kotlin 和 Mongo 响应式中通过 Spring boot/Maven 启动了该项目。

感谢您的帮助 !

我的用户应用程序

@SpringBootApplication
class UsersMsApplication

fun main(args: Array<String>) {
runApplication<UsersMsApplication>(*args)
}

我的模型:
@Document(collection = "user")
data class User(
@Id
private var id: String,
@Field("name")
private var name: String
) : Serializable


我的存储库
@Repository
interface UserRepository : ReactiveMongoRepository<User, String>

我的用户服务
interface UserService {
fun createUser(user: User): Mono<User>

fun findAllUsers(): Flux<User>

fun findOneById(id: String): Mono<User>
}

我的 UserServiceImpl
@Service
class UserServiceImpl(private val userRepository: UserRepository): UserService {
override fun createUser(user: User): Mono<User> {
return userRepository.save(user)
}

override fun findAllUsers(): Flux<User> {
return userRepository.findAll()
}

override fun findOneById(id: String): Mono<User> {
return userRepository.findById(id)
}
}

我的用户资源
@RestController
@RequestMapping("/api")
class UserResource(private val userService: UserService) {

@PostMapping("/users")
fun addUser(@RequestBody user: User) : Mono<User> = userService.createUser(user)

@GetMapping("/users")
fun findAllUsers() : Flux<User> = userService.findAllUsers()

@GetMapping("/users/{id}")
fun getOneUser(@PathVariable id: String) : Mono<User> = userService.findOneById(id)

}

我的 application.properties
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=users_db

logging.level.org.springframework.data=debug

我在数据库中有三个条目,但这是 postman 、curl 或浏览器返回的结果:
[
{},
{},
{}
]

在我的控制台中:

2019-05-07 15:05:13.368 调试 25022 --- [ctor-http-nio-4] o.s.d.m.core.ReactiveMongoTemplate:使用查询:{} 字段:文档{{}} 查找类:com.inovans 类。集合中的 backend.usersms.domains.User:用户

最佳答案

在您的 User您的所有成员的数据类都被声明为私有(private),因此在返回给客户端时不会被序列化为 JSON。将它们更改为公开(只需删除单词 private ,因为它将默认为公开),希望这会有所帮助。

关于mongodb - webflux 返回一个空对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56023622/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com