【发布时间】:2022-01-04 08:46:09
【问题描述】:
我想在这里返回同一级别的课程。
因为这里 id、用户名、密码等都在 userCredentialEntity 下,所以在 userDetailEntity 键中。
{
"userCredentialsEntity": {
"id": 5,
"username": "testuser3",
"password": "$2a$10$yFmeUcE3uTOf9H4TZqWXfO/b8zsTp6sqnWax5iyRXBhlfXF3dSsk2",
"email": "testuser3@gmail.com",
"roles": [
{
"id": 2,
"name": "ROLE_MANAGER"
}
]
},
"userDetailsEntity": {
"userId": 5,
"first_name": "Test",
"last_name": "Singh 3",
"birth_date": "12",
"birth_month": "01",
"birth_year": "2002",
"area": "Chandani Chowk",
"city": "Sahadra",
"district": "Sonbhadra",
"pin_code": 231325,
"mobile_number": "6788762345"
}
}
我必须退货。
{
"id": 5,
"username": "testuser3",
"email": "testuser3@gmail.com",
"roles": [
{
"id": 2,
"name": "ROLE_MANAGER"
}
],
"first_name": "Test",
"last_name": "Singh 3",
"birth_date": "12",
"birth_month": "01",
"birth_year": "2002",
"area": "Chandani Chowk",
"city": "Sahadra",
"district": "Sonbhadra",
"pin_code": 231325,
"mobile_number": "6788762345"
}
并且在返回时也忽略了密码和userId字段
我的实现代码是:
@Data
public class UserMerged {
private UserCredentialsEntity userCredentialsEntity;
private UserDetailsEntity userDetailsEntity;
}
UserDetailsEntity userDetailsEntity = userDetailService.fetchUserDetails(userId).get();
UserCredentialsEntity userCredentialsEntity = userCredentialsRepository.findByUsername(username);
UserMerged userMerged = new UserMerged();
userMerged.setUserDetailsEntity(userDetailsEntity);
userMerged.setUserCredentialsEntity(userCredentialsEntity);
return ResponseEntity.ok().body(userMerged);
我是 Spring Boot 的新手,对此没有任何满意的答案。请建议我实现这一目标的任何方法。 谢谢。
【问题讨论】:
-
为它创建合适的数据结构。你的
UserMerged应该代表你想要的返回类型,目前它没有,那么你会期待什么?将您的UserMerged更改为您需要的,并将实体中的字段正确映射到这些字段。 -
好的,谢谢。但是如果 userCredentials 和 userDetails 中的字段太多,那么我必须再重复一遍。遇到这种情况该怎么办?
-
重复什么?您只需要创建一个代表您想要的结果的对象,然后从其他对象复制到您想要的对象。
标签: json spring spring-boot spring-data-jpa spring-data