2016-07-07 64 views
1

我使用Spring JPA和NonUniqueResultException扔當我使用 「findTop」 關鍵字NonUniqueResultException使用彈簧JPA時拋出 「findtop」

Java源:

Optional<ClassA> findTopByXXXOrderByIdDesc(String xxx); 

然後得到異常:

exceptionType = org.springframework.dao.IncorrectResultSizeDataAccessException例外=結果返回多於一個元素;嵌套異常是javax.persistence.NonUniqueResultException:結果返回多個元素

任何人都知道會發生什麼?

+0

請糾正我,如果我錯了:對於我的理解,儘管會返回多個結果,但是,因爲我使用了「findTop」,所以Spring JPA將幫助我選擇top結果 –

+0

問題得到解決,因爲版本至少應該1.7.1.RELEASE –

回答

1

能否請您檢查您的春季數據JPA的版本。請注意,Top和First從1.7.1.RELEASE開始可用。

-1

您試圖檢索結果爲「query.getSingleResult()」,希望你會得到只有一個結果。而您的查詢返回多個結果。這就是發生這種異常的原因。

+0

請糾正我,如果我錯了,因爲我的理解,即使會返回一個以上的結果,但是,爲我所用「findTop」,所以Spring JPA會幫我選擇最好的結果之一 –