springdatajpa本机查询,select语句中包含动态列



我想根据用户凭据选择列值。

如果用户是admin,则可以显示列值,如果不是空,则必须为特定列显示值。示例代码粘贴在这里,我无法从java端控制它

public interface OrderRepository extends CrudRepository<Order, Long>(){
@Query(nativeQuery = true, value = "SELECT order_number from view_order order by created_on desc")
    List<Object[]> findOrderNumber();
}

我的想法是,如果用户是admin,则将列作为"ordernumber"传递。如果不将其作为空字符串传递,如"。我无法得到想要的输出。任何一个试图在spring数据jpa存储库中生成动态本地查询的人

@Query(nativeQuery = true, value = "SELECT (:order_number) from view_order order by created_on desc")
List<Object[]> findOrderNumber( @Param("order_number") String  order_number);

您可以为您的用例使用case语句。

如下所示:

select 
  case usertype
  when 'Admin' then orderNumber
  else ''
  end as number
from orders

最新更新