spring - 优化回答休息 springboot/jhipster
问题描述
奇怪的事情发生了。我使用 jhipster 方法来调用 getAll 对象实例的其余服务。调试我看到对象已满,即填充了其他实体的外键。
例如,实体 Car 有一个指向生产汽车的公司的公司外键。所以我看到:
return ResponseEntity.ok().headers(headers).body(page.getContent());
page.getContent() 有一个数组,包含公司 1、52、1 的 3 辆车(所以我看到 car1.getFirm().getDescription()==> "XXX"、"YYY"、"XXX")。没关系。但是当我看到 json 到达我的浏览器时,我看到“XXX”、“YYY”、null。扩展,我看不到在同一请求的其他响应记录中已经“使用”的公司。
关于为什么会发生这种情况的任何想法?
PS 这里是我在 System.out 中看到正确描述的休息服务代码:
@GetMapping("/cars")
public ResponseEntity<List<Car>> getAllCars(CarCriteria criteria, Pageable pageable) {
log.debug("REST request to get Cars by criteria: {}", criteria);
Page<Car> page = carQueryService.findByCriteria(criteria, pageable);
System.out.println("---------------------------------------------");
for (Car car:page.getContent()) {
System.out.println(car.getIdFirm().getDescription());
}
System.out.println("---------------------------------------------");
HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(ServletUriComponentsBuilder.fromCurrentRequest(), page);
return ResponseEntity.ok().headers(headers).body(page.getContent());
}
解决方案
如果关系是 Hibernate 延迟加载的,那么当您在控制台或调试器下打印它们时,您会加载它们并且它们是非空的。通过设置show_sql
为 true,您应该会看到正在执行的附加 select 语句。根据您的实体使用的 JSON 注释,Jackson 不会序列化它们。
推荐阅读
- git - 如何解决“远程:您 (@user) 必须接受服务条款才能执行此操作。” 问题?
- apache-kafka - Kafka KStream OutOfOrderSequenceException
- reactjs - Jest 从依赖的 node_modules 抛出类型错误
- awk - 仅模式匹配字符串
- c# - 使用 IdentityServer4 进行子域多租户登录
- python - 在登录期间验证用户名和密码将用户返回为无
- cron - 如何每 2 分钟设置一次 cron,但仅从凌晨 12:00 开始设置 4 小时
- javascript - 如何在 JavaScript 中为特殊条件设置正则表达式?
- facebook - Facebook Marketing Api 错误:(#2635) 您正在调用已弃用的广告 API 版本。请更新到最新版本:v3.2。”
- android - 自动点击提交按钮以及如何通过提交按钮的时间限制?