Использование значения @ManyToOne в шаблоне Thymeleaf — свойство » не читается или имеет недопустимый метод получения, возвращает ли тип метода получения

#java #spring #jpa #thymeleaf

Вопрос:

Я боролся в течение нескольких часов, и я думаю, что это просто, но мне чего-то не хватает

Я использую Thymeleaf в качестве механизма шаблонов, и во многих отношениях то, что хорошо работает для класса и значений, не работает в других файлах (другие классы, другие отношения, тот же метод).

Я всегда получаю : Свойство компонента «Клиент» не читается или имеет недопустимый метод получения: Соответствует ли возвращаемый тип метода получения типу параметра задатчика?

Большое спасибо за вашу помощь :

в классе имплантации у меня есть это :

 @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="client_id")
private Client clients;

public Client getClients() {
    return clients;
}
public void setClients(Client clients) {
    this.clients = clients;
}
 

с другой стороны, клиент класса

 @OneToMany(mappedBy = "clients")
private List<Implantation> implantations;
 

в шаблоне

 <div class="input-group"> 
        <select class="form-control " th:field="*{Client}" id="dropDownClientId" >
        <option th:each="idclient : ${recupClientID}" th:value="${idclient.getId()}" 
th:text="${recupClientID.getId()}"></option>
        </select>
</div>
 

контроллер :

    @RequestMapping("updateImplantation/{id}")
public String updateImplantation(@PathVariable(name = "id") int id, ModelMap modelMap) {
    Authentication auth = SecurityContextHolder.getContext().getAuthentication();
    String username = auth.getName();
    Iterable<Implantation> listImplantations = implantationService.getAllImplantations();
    Implantation implantationId = implantationService.get(id);
    modelMap.addAttribute("implantation", listImplantations);
    modelMap.addAttribute("implantationId", implantationId);
    modelMap.addAttribute("recupEmail", username);
    return "updateImplantation";
}
 

«доступ» к представлению осуществляется из другого, а редактирование/обновление происходит из :

ссылка для доступа к представлению проблемы

Комментарии:

1. Можете ли вы добавить код вашего контроллера?

Ответ №1:

я решил свою проблему, это было не в моем отображении, а в моем контроллере и в том, как я использовал доступ

 @RequestMapping("/editImplantation")
public ModelAndView editImplantationForm(@RequestParam int id) {
    ModelAndView modelAndView = new ModelAndView("updateImplantation");
    Implantation implantation = implantationService.get(id);
    modelAndView.addObject("implantation", implantation);
    return modelAndView;
}

<a th:href="@{/editImplantation(id=${imp.getId()})}">
 

в любом случае, спасибо вам, Вим, за ваше время
, а также всем остальным, даже тем, кто не дал ответа или комментария