gpt4 book ai didi

java - 使用 Spring Data JPA 从 1 个表中按列查找并从另一个表中按列排序

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:30:25 26 4
gpt4 key购买 nike

我正在尝试使用 WorkoutCaseId 从 2 个不同的表中返回数据来自 ReportedWorkout并使用 PaymentDate 对它们进行排序来自 Payment .

ReportedWorkout

+-------------------+----------------+
| ReportedWorkoutId | WorkoutCaseId |
+-------------------+----------------+

付款

+-----------+--------------------+--------------+---------------+
| PaymentId | ReportedWorkoutId | PaymentDate | PaymentAmount |
+-----------+--------------------+--------------+---------------+

我想返回数据为:

SELECT * FROM ReportedWorkout
JOIN table2 ON ReportedWorkout.ReportedWorkoutId = Payment.ReportedWorkoutId
WHERE WorkoutCaseId = '123'
ORDER BY PaymentDate DESC

@Entity
@Table(name = "ReportedWorkout")
public class ReportedWorkoutEntity extends BaseEntity{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ReportedWorkoutId")
private Long reportedWorkoutId;

@Column(name = "WorkoutCaseId")
private String workoutCaseId;

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "ReportedWorkout")
private Set<PaymentEntity> payments = new LinkedHashSet<>();

...
}
@Entity
@Table(name = "Payment")
public class PaymentEntity extends BaseEntity{

@Id
@Column(name = "PaymentId" , nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long paymentId;

@ManyToOne
@JoinColumn(name = "ReportedWorkoutId")
private ReportedWorkoutEntity reportedWorkout;

@Column(name = "PaymentAmount")
private BigDecimal paymentAmount;

@Column(name = "PaymentDate" , nullable = false)
private LocalDate paymentDate;
...
}

我得到它返回数据 WorkoutCaseId :

@Repository
public interface ReportedWorkoutRepository extends CrudRepository<ReportedWorkoutEntity, Long> {
ReportedWorkoutEntity findByWorkoutCaseId(String workoutCaseId);
}

但我不知道如何按 PaymentDate 订购?

findByWorkoutCaseIdOrderByPaymentDateDesc 

我收到以下错误:

Caused by: org.springframework.data.mapping.PropertyReferenceException: No property paymentDate found for type ReportedWorkoutEntity!

最佳答案

由于 paymentDate 不是 ReportedWorkoutEntity 的属性,因此错误是有道理的。对于存储库方法,使用相对于 ReportedWorkoutEntity 的 paymentDate 的完全限定名称。

因此:findByWorkoutCaseIdOrderByPaymentsPaymentDateDesc

关于java - 使用 Spring Data JPA 从 1 个表中按列查找并从另一个表中按列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57912818/

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