QuerydsLPredicateExecutor
选择以下meetupCampaign.id=x
*meetupCampaign.ApprovalStatus=y的关联会议:
*meetupCampaign.id=x
*meetupCampaign.ApprovalStatus=y
我可以在任何一个条件为真的情况下得到结果,但不能同时过滤两个条件
我不确定是使用MeetupRepository
还是使用MeetupCampaignRepository
meetupCampaign.approvalStatus.eq(approvalStatus).and(meetupCampaign.campaign.id.eq(campaignId));
meetup.meetupCampaigns.any().campaign.id.eq(campaignId).and(meetup.meetupCampaigns.any().approvalStatus.eq(approvalStatus));
在本例中,我将得到任何meetupcampaign
其中任何一个条件都为true。
<!-- Should be selected -->
<meetup_campaign id="600" meetup_id="500" campaign_id="200" approval_status="ACCEPTED"/>
<meetup_campaign id="605" meetup_id="504" campaign_id="200" approval_status="ACCEPTED"/>
<!-- Rejected because meetupCampaign status declined -->
<meetup_campaign id="601" meetup_id="501" campaign_id="200" approval_status="DECLINED"/>
<!-- Rejected because wrong campaign id -->
<meetup_campaign id="602" meetup_id="500" campaign_id="201" approval_status="ACCEPTED"/>
<meetup_campaign id="606" meetup_id="501" campaign_id="201" approval_status="ACCEPTED"/>
<meetup_campaign id="603" meetup_id="502" campaign_id="201" approval_status="ACCEPTED"/>
<!-- Rejected on both counts -->
<meetup_campaign id="604" meetup_id="503" campaign_id="201" approval_status="DECLINED"/>
@Entity
public class Meetup {
@Id
@Column(nullable = false, updatable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
protected Long id;
@Fetch(FetchMode.SELECT)
@RestResource(exported = false)
@OneToMany(mappedBy = "meetup", fetch = FetchType.EAGER, orphanRemoval = true)
private Set<MeetupCampaign> meetupCampaigns = new HashSet<>();
}
@Entity
public class MeetupCampaign {
@Id
@Column(nullable = false, updatable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
protected Long id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(nullable = false, updatable = false)
private Campaign campaign;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(nullable = false, updatable = false)
private Meetup meetup;
@Enumerated(EnumType.STRING)
private ApprovalStatus approvalStatus;
}
@Entity
public class Campaign {
@Id
@Column(nullable = false, updatable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
protected Long id;
}
在这里找到了一个答案:querydsl-subquery in collection expression
您可以使用子查询表达式查找具有这两个属性的所有MeetupCampaigns
,然后使用SimpleExpression.in()
查找与这些MeetupCampaigns
相关的Meetup
。
前夫。
meetup.in(JPAExpressions.select(meetupCampaign.meetup).from(meetupCampaign).where(meetupCampaign.campaign.id.eq(campaignId).and(meetupCampaign.approvalStatus.eq(status))).fetchAll());
如何为这种多对多关系分配默认值?制作两个关联表->一个用于收件箱-关系,另一个用于发件箱-关系会更好吗?我该如何做到这一点?这个问题的其他解决方案? 任何帮助都非常感谢--非常感谢!
问题内容: 我正在写一个跨三个表的JPQL查询。在我的结果列表中,我想获得每个匹配行的所有三个实体(希望如此)。 有任何想法吗? Hibernate 3.x是我的JPA提供程序。 问题答案: IIRC,您可以执行,结果将是,其中数组内容将包含o1,o2,o3值。
null 扩展 的 的web查询 只返回具有指定键和值的属性条目的Meetups:AKEY=AVALUE。 收集字段工作,如参与者: 但不是这个地图字段。 我尝试通过使用存储库来定制绑定 编辑:见上文;事实证明,这对我的代码没有任何帮助。 要求尝试两种方法返回路径,以便生成可以使用的谓词。 1是在自定义绑定中查找。我看不到任何表达地图查询的方法 2默认为Spring的bean路径。同样的表达问题。
问题内容: 给定 Spring Data JPA,Spring Data Rest,QueryDsl 一个实体 有田野 坚持作为一个表 一个 延伸 我希望 网络查询 仅返回具有指定键和值的属性条目的Meetups:aKey = aValue。 但是,这对我不起作用。我想念什么? 试过了 简单字段 简单的字段可以工作,例如名称和描述: 收集字段像参与者一样工作: 但不是此Map字段。 自定义Quer
问题内容: 我有一对多关系中的两个客户实体和订单实体。对于每个客户,我需要计算关联订单的数量,并按此数量对结果进行排序。在本地postgres查询中,它看起来像这样: 但是我必须使用CriteriaBuilder来执行此操作,因为此查询是使用CriteriaBuilder放入其他条件的较大代码段的一部分。在Hibernate中,我可能会使用Projections,但在JPA中找不到类似的东西。 使
我在谷歌周围看了一段时间,但没有工作。有谁能帮我解决这个问题吗?