【问题标题】:Spring Data JPA filteringSpring Data JPA 过滤
【发布时间】:2015-12-15 00:27:10
【问题描述】:

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

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>();

我对@9​​87654324@和accountType进行了过滤,使用findByIdAndAccountType()方法很容易,查询是自动生成的。

但如果我想使用idname 进行过滤,这是Plan (AccountEntity.PlanEntity.name) 的属性,这并不简单,因为name 来自子表。我怎样才能达到这个标准?

【问题讨论】:

标签: java jpa spring-boot spring-data-jpa


【解决方案1】:

假设 PlanEntity 和 TransactionEntryEntity 被 @OneToOne 或 @OneToMany 等注解

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2019-10-12
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多