https://stackoverflow.com/questions/71455727/how-to-cast-string-value-in-custom-object-thymeleaf
Друзья, подключил hibernate в свой MVC проект, который раньше был построен на JDBCTemplate и DTO классах. Столкнулся с вопросом инициализации объектов без использования DTO. Так например в students/edit передается модель entity(Student) и список объектов в модели groups(List<Group>). При попытке отправки POST или PUT запроса вылетает IlegalStateException (typeMismatch) в связи с тем, что в форме select объекты groups преобразуются в String. Я перелопатил практически все, но так и не нашел ответа, как элегантнее решить эту проблему. Подскажите пожалуйста, кто чем может. Спасибо!
Руслан
35 уровень
Конвертация String в объект кастомного класса в Thymeleaf
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Павел
14 марта 2022, 16:55
Звучит так, что ты отказался от DTO из-за hibernate.
А по проблеме: не видя кода сложно понять, что там. Ссылка на гит помогла бы.
0
Руслан
17 марта 2022, 05:43
https://github.com/HighlandProger/university.git
0
Руслан
17 марта 2022, 05:45
Я подумал о возможности обойти использование DTO
0
Павел
17 марта 2022, 09:18
Насколько я понял, в этом репозитории у тебя сейчас нет хибернейта.
Если у тебя с ДТО все работало как надо, то я бы их оставил.
А так получается надо брать этот String и перекладывать его в Group, до того места где у тебя выскакивает ошибка, по идее самым нормальным местом был бы как раз сервис который из модели конвертирует ДТО.
У тебя похоже это тут
Конечно я сам тебя ссылку попросил скинуть) но читать такой код тяжеловато. Не плохо бы использовать Java доки для пояснений что это класс и что это за метод.
И если нет особых требований к проекту по технологиям, то почему бы не использовать спринг бут и JpaRepository
0
Руслан
17 марта 2022, 11:16
Понял. Спасибо, вернусь к DTO. Дай пожалуйста образец Java доков для пояснений.
0
Павел
17 марта 2022, 11:54
https://java-online.ru/java-javadoc.xhtml
над классом или методом поставь /** а потом нажми ентер
0
Руслан
17 марта 2022, 16:14
Спасибо!
0