gpt4 book ai didi

java - Spring数据分页和排序存储库,具有多个字段和日期

转载 作者:行者123 更新时间:2023-12-01 18:40:28 24 4
gpt4 key购买 nike

下面是我的 View 实体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 字段查询 View

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 的情况下工作

最佳答案

要么

将属性sender重命名为lawFirm

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

将您的存储库方法重命名为:

findByClientAndSenderAndSubmitDateBetween

关于java - Spring数据分页和排序存储库,具有多个字段和日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59942056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com