Java IncorrectResultSizeDataAccessException,返回多个元素
我有一个SpringDataJPA存储库,需要在其中按名称和项目字段获取条目Java IncorrectResultSizeDataAccessException,返回多个元素,java,spring,hibernate,servlets,spring-data-jpa,Java,Spring,Hibernate,Servlets,Spring Data Jpa,我有一个SpringDataJPA存储库,需要在其中按名称和项目字段获取条目 public interface ItemRepository extends CrudRepository<Item, { public Item findById(String id); public List<Item> findByNameAndItem(String name, String item, P
public interface ItemRepository extends CrudRepository<Item,
{
public Item findById(String id);
public List<Item> findByNameAndItem(String name,
String item, Pageable pageables);
}
我这样称呼我:
return itemRepository.findByNameAndItem
(name,item, new PageRequest(0, 10));
错误:
Servlet[dispatcherServlet]在具有路径的上下文中的Servlet.service()
[]引发异常[请求处理失败;嵌套异常为
org.springframework.dao.incorrectresultsizedaataaccessexception:结果
返回多个元素;嵌套异常为
javax.persistence.UnuniquereSultException:结果返回的值超过
带有根cau的一个元素]
你看过这个了吗。假设
List
没有唯一索引的承诺,因此JPA不喜欢映射到它。CRUDepository是在AssessedItemLink上定义的,其中as findByNameAndItem返回List。我想这必须是一个列表或一个有效的jpa投影。你可以发布AssessedItemLink和Item类的代码吗?我更新了帖子,是一个复制粘贴错误,Item都结束了。这样应该没问题。但是这里的命名可能有问题:您的实体被命名为Item
,它还有一个字段Item
,它是一个字符串。在repo方法findByNameAndItem
中,驼峰大小写表示您希望按给定字符串name
和项进行筛选。更改属性名称时,是否可以检查它是否保持不变?
return itemRepository.findByNameAndItem
(name,item, new PageRequest(0, 10));