首页 > 解决方案 > 查询具有特定条件的 Spring DATA

问题描述

我正在尝试获取具有状态为'CA''CCR'的合同列表的帐户,我尝试了下面的查询并且它有效。

问题是我想在我的查询中添加一个条件,以获取具有不同类型的相反合同的帐户。

两个相反的合同是两个不同类型的合同。(一份合约H,另一份合约A

支持的类型是:家庭保险和汽车保险(HA)。

@Query("select a from Account a full join a.contracts c join c.refStatusContract r where a.id=:id AND r.cdStatutContrat in ('CA','CCR')")
    Account getAccountHavingContractStatusActifOrInProcessOfTermination(@Param("id") long id);

我的需要:

我想检查是否存在两个附加到我的数据库中的帐户的合同,其中两个合同是反对的,并且合同授权状态是“CA”或“CCR”。

标签: javaspringjava-8spring-data-jpaspring-data

解决方案


不确定我是否正确理解了您的问题

因此,您需要以下帐户:

  1. 拥有状态为“CA”或“CCR”的合同
  2. 至少有 2 份合同,一份为 H 型,另一份为 A 型

这是你需要的吗?

@Query("select a 
        from Account a 
        full join a.contracts c 
        join c.refStatusContract r 
        where a.id=:id 
            AND r.cdStatutContrat in ('CA','CCR') 
            AND c.contractType in ('H', 'A')
        GROUP BY a
        having count(distinct c.contractType) > 1")
Account getAccountHavingContractStatusActifOrInProcessOfTermination(@Param("id") long id);

这是你需要的吗?


推荐阅读