我不确定是否可以实现,但是希望找到有关Java中我的存储库的JQPL查询的信息。我有一个这样的示例表:
Name | Address | City |
--------------------------
A | A | C |
C | B | B |
B | C | A |
我希望这样,当我输入列名时,我将能够按列对所有行的结果进行排序。因此,例如,如果我要按名称订购,那么它应该返回A B C而不是A CB。我知道可以使用基本查询来实现,例如:
SELECT * FROM Customers
ORDER BY Name;
但是我不确定是否可以将该选项应用于所有列。因此,如果用户决定传递订购选项以解决问题,那么他们也可以这样做,而且如果他们决定也将其设置为城市。为了清楚起见,我尝试将选项应用于查询的所有列的排序,但不确定是否可行。如果不是,是否有其他选择?谢谢。
如果使用JpaRepository
,则可以使用Sort
参数提供自定义排序:
@Repository
public interface CustomerRepository extends JpaRepository<Customers, Long> {
List<Customer> findAll(Sort by);
}
您的定制分类服务:
@Autowired
private CustomerRepository customerRepository;
public List<Customer> getCustomers(String ... columnNames) {
return customerRepository.findAll(Sort.by(columnNames));
}
public List<Customer> getCustomersOrderedByNameDescAndAddress() {
return customerRepository.findAll(Sort.by("name").descending().and(Sort.by("address")));
}