Исключение неуникального результата Spring Boot

Привет всем, я использую SpringBoot с Mysql. У меня есть эта ошибка, когда я пытаюсь показать информацию

У меня есть код ниже в моем контроллере:

query did not return a unique result: 2; nested exception is javax.persistence.NonUniqueResultException: query did not return a unique result: 2
org.springframework.dao.IncorrectResultSizeDataAccessException: query did not return a unique result: 2; nested exception is javax.persistence.NonUniqueResultException: query did not return a unique result: 2

Код

 @GetMapping("showdeveforma/{id}")
 public String ShowDeveFormation(Model m , @PathVariable Long id)

 { 
     Formation frm = frmreop.findById(id).get();

     m.addAttribute("avis", srv.findByforma(frm));

     return"ChefProjetAffichageAffectationDeveForma";
 }
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
2
0
9 393
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Ваш метод DAO возвращает более одной строки, но у вас есть одно значение в качестве определенного типа результата, а не коллекции.

как можно использовать FindAllByAttribut?

Amine El Mandour 23.06.2019 20:17

Тип возвращаемого значения вашего репозитория — одно значение: srv.findByforma(frm). Запрос возвращает более одного результата. Вы можете использовать коллекцию, если это ожидаемое поведение, или вам нужно выяснить, почему для данной формации существует более одной сущности. (Проверьте отношения сущностей)

вы можете дать мне пример использования коллекции, пожалуйста

Amine El Mandour 23.06.2019 20:18

когда вы определяете свой метод репозитория YourReturnType findByforma(Formation f), вместо YourReturnType вы можете вернуть List<YourReturnType>

zlaval 24.06.2019 08:27

Я повторяю это, но не могу разрешить информацию Controller :

 @GetMapping("showdeveforma/{id}")
 public String ShowDeveFormation(Model m , @PathVariable Long id)

 { 
    //Formation frm = frmreop.findById(id).get();
     
    // m.addAttribute("avis", srv.findByforma(frm));
    m.addAttribute("ide", id);
    m.addAttribute("avis" , srv.getAvisFormation());
    return"ChefProjetAffichageAffectationDeveForma";
 }

и моя страница html:

<thead>
<tr>  

<td> Titre Formation </td>

<td> Description Formation </td>
<td> Adresse Formation </td>
<td> Formateur </td>
<td>Telephone Foramteur  </td>
<td> Nom Devellopeur </td>
<td> Prenom Devellopeur  </td>
<td> Telephone Devellopeur </td>
<td> Emain Devellopeur</td>
</tr>
</thead>
<tbody>
<tr th:each = "avis : ${avis}"  th:if = "${avis.forma.id} == 'ide'">
<td th:text = "${avis.forma.NomFormation}"> </td>
<td th:text = "${avis.forma.DescriptionFormation}"> </td>
<td th:text = "${avis.forma.AdresseFormation}"> </td>
<td th:text = "${avis.forma.formateurs.PrenomFormateur}"> </td>
<td th:text = "${avis.forma.formateurs.TelephoneFormateur}"> </td>
<td th:text = "${avis.deve.NomDeve}"> </td>
<td th:text = "${avis.deve.PrenomDeve}"> </td>
<td th:text = "${avis.deve.TelephoneDeve}"> </td>
<td th:text = "${avis.deve.EmailDeve}"> </td>
</tr>   
</tbody>



</table>
   

Другие вопросы по теме