JPA存储库-findLast返回NonUniqueResultException吗?

问题描述

我有一个JpaRepository函数,看起来像这样:

fun findLastByOrganisationAndFileType(organisation: Organisation,fileType: FileType) : OrganisationFile?

但是由于某种原因,当我有两个组织的相同类型的文件时,会出现以下错误

javax.persistence.NonUniqueResultException:查询未返回唯一结果:2

我知道它不是唯一的,但我不知道为什么要这么做,毕竟它使用的是findLast而不是find。

是否需要指定订单顺序?

解决方法

就像在SQL中调用limit或不进行排序的等效命令一样,如果不进行排序就没有多大意义(除了获取数据样本),这里还需要指定方法的OrderBy部分名称:

fun findLastByOrganisationAndFileTypeOrderBySomeField(organisation: Organisation,fileType: FileType) : OrganisationFile?