我在Spring Boot 中使用JAVA JPA。该方案是我的表有大约8列(假设id,A,B,C,D,E,F,G,H)从这些我想要5列作为结果E,F,G,H和只有一个从A,B,C,D这将不是固定的每次执行。
我曾这样写过。
@Query(“Select:dynamicColName,E,F,G,H FROM TABLEname where id=:id“)List findById(@Param(“dynamicColName”)String dynamicColName,@Param(“id”)String id);
没有用这里的查询没有引用dynamicColName的值作为列名。
建议是高度赞赏。
查询中的动态列名注入
2条答案
按热度按时间4si2a6ki1#
实现动态查询最简单的方法之一是使用Spring Data JPA规范
结果将是这样的,你可以选择你想要查询的参数。
更多信息:https://vladmihalcea.com/spring-data-jpa-specification/
hec6srdp2#
选项1 -解决方法:您可以使用EntityManager:
选项2 - CASE块:在SELECT查询部分中添加一个条件:
解决方案如下所示:
参考维基百科文章:JPA 2.0中的新特性
选项3 - JPA标准API
第11章. JPA标准
Bueldung: JPA Criteria Queries