具有多个字段和日期之间的Spring数据分页和排序存储库

问题描述 投票:0回答:1

下面是我的视图vw_invoice_report的实体

@Entity
@Table(name = "vw_invoice_report")
class Report implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "id")
    private Long id;

    @Column(name = "sender_name")
    private String sender;

    @Column(name = "client_name")
    private String client;

    @Column(name = "submit_date")
    @Temporal(TemporalType.TIMESTAMP)
    private Date submitDate;

    @Column(name = "invoice_num")
    private String invoiceNum;

    //getters
    }

并且正在尝试实现findByClientAndLawfirmAndSubmitDateBetween以使用client,sender, submitDate字段查询视图

public interface ReportRepository extends PagingAndSortingRepository<Report, Long>{
   public List<Report> findByClientAndLawfirmAndSubmitDateBetween(String client, String sender, Date start, Date stop, Pageable pageable)
}

当我尝试调用上述方法时出现以下错误

org.hibernate.QueryException: could not resolve property: client of: com.xyz.reports.Report 
[select generatedAlias0 from com.xyz.reports.Report as generatedAlias0 where ( ( generatedAlias0.client=:param0 ) and ( generatedAlias0.sender=:param1 ) ) and ( generatedAlias0.submitDate between :param2 and :param3 )]; nested exception is java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: client of: com.xyz.reports.Report [select generatedAlias0 from com.xyz.reports.Report as generatedAlias0 where ( ( generatedAlias0.client=:param0 ) and ( generatedAlias0.sender=:param1 ) ) and ( generatedAlias0.submitDate between :param2 and :param3 )] 34178348919273527

但是如果我用Query注释对上面的查询进行注释,如下所示,则工作正常

@Query(value="SELECT id, sender_name, client_name, submit_date, invoice_num FROM vw_invoice_report WHERE client_name  = ?1 AND  sender_name = ?2 AND submit_date BETWEEN ?3 AND ?4 ORDER BY submit_date desc",
        nativeQuery = true)`

反正有没有findByClientAndLawfirmAndSubmitDateBetween()@Query工作>]

以下是我的视图vw_invoice_report @Entity @Table(name =“ vw_invoice_report”)类的实体报告实现了Serializable {private static final long serialVersionUID = 1L; @Id @ ...

java spring spring-boot spring-data-jpa spring-data-rest
1个回答
0
投票

两个

© www.soinside.com 2019 - 2024. All rights reserved.