gpt4 book ai didi

java - 通过传入列标题对不同列进行 ORDER BY

转载 作者:行者123 更新时间:2023-12-01 16:20:01 24 4
gpt4 key购买 nike

我不确定这是否可以实现,但希望找到有关 java 中我的存储库的 JQPL 查询的信息。我有一个像这样的示例表:

 Name | Address | City |
--------------------------
A | A | C |
C | B | B |
B | C | A |

我希望这样当我传递列名时,我将能够按列对所有行的结果进行排序。例如,如果我按名称订购,那么它应该返回 A B C 而不是 A C B。我知道这可以使用基本查询来实现,例如:

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")));
}

关于java - 通过传入列标题对不同列进行 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62303414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com