1

我有一个相当简单的 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 如何处理表单数据有关?即使查询相当快,如果我不添加为选择输入提供选项的属性,页面几乎会立即完成加载。

4

1 回答 1

0

原来这在此之前已经经历过:Thymeleaf Select Option Performance Issue

所以我的解决方案是不使用th:field并且页面会立即加载。

于 2018-11-06T14:03:14.253 回答