使用Spring DATA JPA编写SQL查询,其中列名是VARIABLE(列名将动态地从循环中获取)



使用Spring Data JPA,如何编写SQL Select查询,其中Column Name为DYNAMIC(使用的列名可以不同)。我们已经在循环中获取了列名),列名应该从循环中选择,并且根据所选择的列名,我们需要获取结果

如果需要,我可以提供更多信息

SELECT DISTINCT ?1 FROM表名where rowStatus=0

这里?1表示Column Name,它将根据循环

中的值变化(并选择)。

根据需要命名方法,并使用@Query注释指定查询。

@Query("SELECT DISTINCT ?1 FROM TABLEName where rowStatus=0")
List<MyClass> findByColumnName(String columnName);

这并不真正适用于Spring Data JPA查询机制。

@Query("SELECT DISTINCT ?1 FROM TABLEName where rowStatus=0")
List<MyClass> findByColumnName(String columnName);

将只返回作为参数传递的值,而不是该名称的列的值。

如果可接受的列名列表有限,您可以使用CASE语句:

CASE
WHEN ?1 = 'name' THEN name
WHEN ?1 = 'address' THEN address
// ...
ELSE result
END;

可以在SQL和JPQL中使用。

一些SQL方言还具有将字符串转换为标识符名称的函数。你可以搜索你喜欢的数据库

最新更新