spring - spring boot + h2 + jpa项目的问题
问题描述
这是我的User
课:
@Data
@Entity
public class User {
@Id @GeneratedValue Long userID;
String eMail;
String phoneNumber;
String displayName;
//File displayPicture;
String firstName;
String middleName;
String lastName;
ArrayList<ClassRoom>adminOf=new ArrayList<>();
ArrayList<ClassRoom>memberOf=new ArrayList<>();
@NotNull
int rating;
boolean isTeacher;
ArrayList<Assignment>assignmentsToSubmit=new ArrayList<>();
ArrayList<Assignment>assignmentsSubmitted=new ArrayList<>();
@OneToOne(fetch = FetchType.LAZY,targetEntity = LoginCredential.class)
@JoinColumn(name = "userID",referencedColumnName = "userID")
private LoginCredential loginCredential;
User() {
}
}
这是控制器,UserController
类:
@RestController
class UserController {
private final UserRepository repository;
UserController(UserRepository repository) {
this.repository = repository;
}
@GetMapping("/user/{id}")
User one(@PathVariable Long id) {
return repository.findById(id).orElseThrow(() -> new UserNotFoundException(id));
}
}
我http://localhost:8080/user/1
通过浏览器访问。这是输出:
这里loginCredential
也出现了,但我想退回除它之外的所有东西。
如果没有其他课程,如何做到这一点?
解决方案
将@JsonIgnore添加到字段定义中。或者,您可以在类级别使用@JsonIgnoreProperties。
我注意到您尝试为字段提供私有访问修饰符。这不会将字段隐藏到 JSON 序列化程序,因为您的类使用 Lombok 的@Data进行注释,当在没有 @Getter/@Setter 且具有覆盖访问权限的情况下使用时,将对生成的方法的访问权限设置为公共。
推荐阅读
- python - 通过 Jenkins 执行 Bat 文件失败
- javascript - 添加和减少重复值
- ecmascript-6 - 我无法实现分页。使用 url 参数帮助实现分页(VUETIFY 或 BOOTSTRAP-VUE)
- python - Mongoengine 连接失败:您尚未定义默认连接
- html - 在简单的 index.html 网页中仅包含 BS4 模态组件
- javascript - 运行 RInno R Shiny 收到 JScript 运行时错误
- javascript - 如何将模块中的函数导出为类成员
- python - ValueError: ('长度必须匹配才能比较', (229025,), (1,))
- ios - Firestore 旁边安装了多个未声明的 pod
- matlab - 从分布在半球周围的点进行 Matlab pcolor 测量