在使用休眠模式的spring-boot项目中,我想创建一个查询,该查询返回日期和ByMethodPaymentId之间具有日期的所有操作。 实体类:
@Entity
public class Action {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date date;
@ManyToOne
@JsonIgnore
@Valid
private MethodPayment methodPayment;
//constructor....getter... setter...
要执行此操作的存储库
@Repository
public interface ActionRepository extends JpaRepository<Action, Long>{
// Dont works
Collection<Action> findByMethodPaymentIdAndByDateBetween(long methodPaymentId,Date startDate, Date endDate );
// works
Collection<Action> findByMethodPaymentId(long methodPaymentId);
// works
Collection<Action> findByDateBetween(Date startDate, Date endDate);
为什么最后两个查询有效,而第一个查询却又两个无效?
答案 0 :(得分:3)
使用By
时不必再次提及JPQL
,因此方法类似于
Collection<Action> findByMethodPaymentIdAndDateBetween(long methodPaymentId,Date startDate, Date endDate );
尝试一下。
答案 1 :(得分:2)
在Remove
之后By
And
更改
findByMethodPaymentIdAndByDateBetween()
收件人
findByMethodPaymentIdAndDateBetween()
最终查询
Collection<Action> findByMethodPaymentIdAndDateBetween(long methodPaymentId,Date startDate, Date endDate );
多个和/或
findByFirstParameterAndSecondeParameterORThirdParameter(...)