小编Jar*_*cki的帖子

Spring Boot自定义查询分组依据和计数

我在从自定义查询访问数据时遇到问题。

这是 POJO:

@Getter
@Setter
@NoArgsContructor
@AllArgsConstructor
@Entity
@Table(name = "run_list")    
public class RunList {
    @Id
    @Column(name = "id")
    private Long id;

    @Column(name = "control_run_name"
    private String serverName;

    @Column(name = "control_run_date"
    private Date controlRunDate

<.. bunch of other fields .. >
Run Code Online (Sandbox Code Playgroud)

这是存储库:

public interface RunListRepository extends JpaRepository<RunList, Long> {

    @Query("SELECT u.serverName,count(u) as controlRunCount from RunList u where u.controlRunDate < :lastUploadDate group by u.serverName")
    List<RunList> findAllControlRunAfterDate(@Param("lastUploadDate") Date lastUploadDate);
Run Code Online (Sandbox Code Playgroud)

在控制器中,我像这样调用存储库方法:

Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2020-03-01");
model.addAttribute("runList",runListRepository.findAllControlRunAfterDate(date);
Run Code Online (Sandbox Code Playgroud)

与查询中日期的绑定工作正常,我得到了分组的第一个结果,这样问题就解决了。问题是我在运行此命令时遇到错误:

Failed to convert from type[java.lang.Object[]] …
Run Code Online (Sandbox Code Playgroud)

java spring jpa count spring-boot

0
推荐指数
1
解决办法
7223
查看次数

标签 统计

count ×1

java ×1

jpa ×1

spring ×1

spring-boot ×1