优化回答休息springboot/jhipster

Optimization answering rest springboot/jhipster

奇怪的事情发生了。我使用 jhipster 方法调用 getAll 对象实例的其余服务。调试我看到对象已满,这是填充了其他实体的外键。

例如,实体汽车有一个公司外键指向生产汽车的公司。所以我看到了:

return ResponseEntity.ok().headers(headers).body(page.getContent());

page.getContent() 有公司 1、52、1 的 3 辆车组成的数组(所以我看到 car1.getFirm().getDescription()==> "XXX", " YYY”,“XXX”)。没关系。但是当我看到 json 到达我的浏览器时,我看到“XXX”、“YYY”、null。扩展,我在同一请求的其他响应记录中看不到任何关于已“使用”的公司。

知道为什么会这样吗?

P.S。这里是休息服务的代码,我在 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 lazy-loaded,当您在控制台或调试器下打印它们时,您加载它们并且它们是非空的。通过将 show_sql 设置为 true,您应该会看到额外的 select 语句正在执行。根据您的实体使用了哪些 JSON 注释,Jackson 不会序列化它们。