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>();
我对 id
和 accountType
进行了过滤,使用 findByIdAndAccountType()
方法很容易,查询是自动生成的。
但是如果我想使用 id
和 name
进行过滤,即 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)
我有一个如下所示的控制器。
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>();
我对 id
和 accountType
进行了过滤,使用 findByIdAndAccountType()
方法很容易,查询是自动生成的。
但是如果我想使用 id
和 name
进行过滤,即 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)