我有一个Spring数据REST服务,只有一个@Entity和Repository。当我跑的时候
$ curl localhost:8080/api
我获得了存储在我的存储库中的所有数据,它按预期工作。我也有一个小的React前端,我在那里显示数据。
我的问题是:我应该在哪里过滤数据?例如,我可能想要id > 10的所有条目。我应该只在前端过滤响应,还是应该以一种只返回所需条目的方式调用REST?
如果我应该做后者,那么如何做呢?
谢谢。
发布于 2020-07-26 03:32:39
如果总是这样,为什么要让front-end
肩上承担额外的负担来一直过滤结果呢?
实现一个返回所需结果(例如id > 10)的新方法,并使用@Query
对其进行注释,并在其中提供JPQL
或native query
@Query("SELECT c FROM Customer c WHERE c.id > 10")
Collection<Customer> findAllActiveCustomers();
但是,如果选择原生查询,请不要忘记将nativeQuery = true
放入@Query
中
发布于 2020-07-26 13:28:08
在后端进行过滤,或者更具体地说,使用数据库查询进行过滤。
数据库针对这些操作进行了优化。因此,您可以减少从后台传输到前端的数据,减少前端的负载,因为只有用户请求的数据才会被前端处理。
另一个好处是,如果你有多个前端(例如网站和移动应用程序),你只需实现一次过滤功能(在后端),而不是两次(在每个客户端)
https://stackoverflow.com/questions/63094843
复制