hibernate Sping Boot 非唯一结果异常

8zzbczxx  于 2023-01-31  发布在  其他
关注(0)|答案(4)|浏览(209)

大家好,我正在使用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";
 }
vql8enpb

vql8enpb1#

DAO方法返回多行,但定义了一个值作为结果类型,而不是Collection。

uajslkp6

uajslkp62#

存储库的返回类型是单个值:srv.findByforma(frm)。查询返回多个结果。如果这是预期行为,或者需要调查给定构造存在多个实体的原因,则可以使用集合。(检查实体关系)

5vf7fwbs

5vf7fwbs3#

我重试此操作,但无法解析信息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>
mpbci0fu

mpbci0fu4#

正如Simon Martinelli提到的DAO方法“findBy...”返回多行,如果只需要一行,应该使用“findFirst..."。

相关问题