【发布时间】:2018-08-30 01:54:10
【问题描述】:
我只是想动态创建查询。意思是我只想指定排序将在哪一列中进行,并将排序类型为ASC or DESC 也使用此查询我必须限制记录数。我在这里使用 PostgreSQL。所以在查询中我应该指定 limit 和 offset 。
所以我将 sense 属性中的四个变量发送到接口。
WorkflowDetailsInterface.java
@Configuration
public interface WorkflowDetailsInterface extends CrudRepository<WorkflowDetails, Integer> {
@Query(value ="SELECT workflow_id, workflow_name, workflow_description, workflow_definition, "
+ "camunda_workflow_json, camuda_deployment_id, camunda_status,diagnostic_flag, "
+ "active, del_flag FROM workflow ORDER BY :orderByColoumn : orderByOrder LIMIT :recordCountLimit OFFSET :startLimit",nativeQuery = true)
List<WorkflowDetails> listWorkflowName(@Param("startLimit") int startLimit,
@Param("recordCountLimit")int recordCountLimit,@Param("orderByColoumn")String orderByColoumn,
@Param("orderByOrder")String orderByOrder);
}
这里,
@Param("startLimit") int startLimit 将是起点
@Param("recordCountLimit")int recordCountLimit 这是偏移量
@Param("orderByColoumn")String orderByColoumn 按列名排序
@Param("orderByOrder")String orderByOrder 按 ASC 或 DESC
如何将这些变量动态绑定到我的 JPA 查询
【问题讨论】:
标签: java sql postgresql hibernate spring-data-jpa