【问题标题】:Spring Boot Non Unique Result ExceptionSpring Boot 非唯一结果异常
【发布时间】:2019-11-05 13:51:17
【问题描述】:

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

【问题讨论】:

    标签: mysql spring hibernate spring-boot controller


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 你可以给我一些使用收藏的例子
      • 当你定义你的存储库方法YourReturnType findByforma(Formation f),而不是YourReturnType你可以返回List&lt;YourReturnType&gt;
      【解决方案3】:

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

      【讨论】:

      • 如何使用 FindAllByAttribut ?
      猜你喜欢
      • 2023-03-14
      • 2021-04-07
      • 2017-09-03
      • 1970-01-01
      • 2019-01-06
      • 2019-12-26
      • 2019-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多