【发布时间】:2018-11-06 08:22:28
【问题描述】:
我有一个相当简单的 Web 应用程序,其中包含一个用于编辑实体的页面。 加载大约需要 30 秒,我不明白为什么。 SQL 查询在一秒钟内完成。
我的控制器方法
@GetMapping(value = "/lasterapport/{id}")
public String lasterapport(Model model, @PathVariable("id") Long id) {
model.addAttribute("lasterapport", lasterapportRepository.getOne(id));
model.addAttribute("brukere", brukerRepository.findAll());
model.addAttribute("lastere", maskinRepository.findLastere());
model.addAttribute("trucker", maskinRepository.findTrucker());
model.addAttribute("masser", masseRepository.findAll());
model.addAttribute("destinasjoner", destinasjonRepository.findAll());
return "lasterapport";
}
我的实体(为了便于阅读,没有 getter 和 setter 以及构造函数)
@Entity
public class Lasterapport {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
private Bruker truckBruker;
@ManyToOne
private Bruker lasterBruker;
@ManyToOne
private Maskin truckMaskin;
@ManyToOne
private Maskin lasterMaskin;
@ManyToOne
private Masse masse;
@ManyToOne
private Destinasjon destinasjon;
private Integer tonn;
private Date tidspunkt;
private String vifte_id;
}
我的视图只是一个表单,其中包含所有不同的多对一关系的选择输入
<div class="form-group">
<label for="maskinLaster">Sjåfør laster</label>
<select class="form-control" th:field="*{lasterBruker}">
<option th:each="dropDownItem : ${brukere}"
th:value="${dropDownItem.id}"
th:text="${dropDownItem.navn}" >
</option>
</select>
</div>
我认为这与 Spring 如何处理表单数据有关?即使查询相当快,如果我不添加为选择输入提供选项的属性,页面几乎会立即完成加载。
【问题讨论】:
-
如何逐行记录以了解耗时的分区方式
-
延迟发生在控制器方法返回之后。在那之后,在页面显示之前我没有断点。
标签: hibernate spring-boot