Spring 数据 JPA 过滤

Spring Data JPA filtering

我有一个如下所示的控制器。

public String getAccountsFilter(
    @PathVariable("cardHolderId") String cardHolderId,
    @RequestParam(value = "accountType", required = false) String accountType,
    @RequestParam(value = "name", required = false) String name)

AccountEntity如下

public class AccountEntity implements Serializable {
    private static final long           serialVersionUID = 1L;
    private String                      id;
    private String                      accounttype;
    private Date                        endDate;
    private boolean                     active;
    private PlanEntity                  planEntity;
    private Set<TransactionEntryEntity> transactionEntry = new HashSet<TransactionEntryEntity>();

我对 idaccountType 进行了过滤,使用 findByIdAndAccountType() 方法很容易,查询是自动生成的。

但是如果我想使用 idname 进行过滤,即 Plan (AccountEntity.PlanEntity.name) 的 属性,这并不简单,因为 name 来自child table。我该如何处理这个标准?

假设 PlanEntity 和 TransactionEntryEntity 由 @OneToOne 或 @OneToMany 等注释

您可以在 AccountEntity 的存储库中的方法之一中执行以下操作

@Query("select a from AccountEntity a where a.planEntity.name = :name")
public aMethod( @Param("name") String name)