【发布时间】:2017-06-15 07:10:06
【问题描述】:
我在我的项目中使用 Spring JPA DATA。我想让我的数据可分页。我已经将 Pageable 添加到我的存储库方法中。但它显示类似这样的错误:
请求处理失败;嵌套异常是 java.lang.IllegalArgumentException:您必须提供至少一个 属性排序! java.lang.IllegalArgumentException:你必须 提供至少一个属性进行排序! org.springframework.data.domain.Sort.
(Sort.java:92) org.springframework.data.domain.Sort. (Sort.java:80) org.springframework.data.domain.PageRequest. (PageRequest.java:52) com.datum.fnd.controller.rest.NodeRestController.getNodes(NodeRestController.java:44) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method).....
我想与您分享我的代码。请查看以下代码。我还没找到我做错的地方
我的@Repository 类:
@Query(value = "select new com.datum.fnd.domain.Node(c.idNode, c.name,c.address, c.description, c.point) from Node c")
List<Node> getNodesByPage(Pageable pageable);
我的服务类:
public interface NodeService extends DefaultService<Node, Long> {
List<Node> getUnboundedNodes();
List<Node> getNodes(Pageable pageable);
}
我的 ServiceImpl 类:
@Service
public class NodeServiceImpl implements NodeService {
private static final Logger LOG = Logger.getLogger(NodeServiceImpl.class);
@Autowired
private NodeRepository nodeRepository;
@Autowired
private ChannelNodeRepository channelNodeRepository;
@Override
public Node create(Node node) {
return nodeRepository.save(node);
}
@Transactional(readOnly = true)
@Override
public List<Node> list() {
return nodeRepository.selectAll();
}
@Transactional(readOnly = true)
@Override
public List<Node> getNodes(Pageable pageable) {
return nodeRepository.getNodesByPage(pageable);
}
我的控制器类:
@RequestMapping(value = "/page/{last_item}", method = RequestMethod.GET)
public List<Node> getNodes(@PathVariable(value = "last_item") int last_item) {
LOG.info("Retrieve all nodes");
PageRequest page_req = new PageRequest(0, last_item, Direction.DESC);
return nodeService.getNodes(page_req);
}
当我尝试调用“http://localhost:8088/FNDWEB/rest/node/page/50”时,它会显示上述错误。
【问题讨论】:
-
您正在使用的 PageRequest 构造函数似乎需要第四个非空参数docs.spring.io/autorepo/docs/spring-data-commons/1.13.0.M1/api/…
-
当我从我的 PageRequest 中删除“Direction.DESC”时它可以工作
标签: java spring spring-mvc spring-data-jpa