我有 2 个实体用户、用户详细信息和 2 个存储库:
@Getter
@Setter
@NoArgsConstructor
class User {
@Id
private Long id;
private String fullname;
}
@Getter
@Setter
@NoArgsConstructor
class UserDetails {
@Id
private Long id;
private Long userId;
@Transient
private String fullname;
private String hobby
// and some more ...
}
@Repository
public interface UserRepo extends ReactiveCrudRepository<User, Long>;
@Repository
public interface UserDetailsRepo extends ReactiveCrudRepository<UserDetails, Long>;
我希望从用户实体获取全名的用户详细信息列表,所以我在路由函数中编码:
userDetailsRepo.findAll()
.map(userDetails -> {
userRepo.findById((userDetails.getUserId())
.subscribe(user -> userDetails.setFullname((user.getFullname))
return userDetails;
}
但全名是空的。
每个人都能帮我吗
非常感谢
对不起,我的英语太糟糕了
感谢JB Nizet和您的建议。我编辑代码,它可以工作
userDetailsRepo.findAll()
.flatMap(userDetails -> {
return userRepo.findById(userDetails.getUserId())
.map(user -> {
userDetails.setFullname(user.getFullname());
return userDetails;
}
}