0
在模卡可以有或没有持卡人(1:1),我想获得由发行人挂actived持卡人加上卡无持卡人每卡过滤器,所以我需要一个完整的外连接。虽然下面的查询转换为左连接返回刚刚与持卡人的卡的EclipseLink/TopLink的全外连接,而不是左加入
final ExpressionBuilder builder = new ExpressionBuilder(Card.class);
Expression queryExp = builder.get("cardIssuer").equal(cardIssuer);
queryExp = queryExp.and(builder.get("cardStatus").get("statusType").equal("ACTIVATED"));
queryExp = queryExp.and(builder.getAllowingNull("cardHolder")isNull().or(
builder.get("cardHolder").get("status").get("status").equal("ACTIVE")));
Expression orderExpression = builder.get("cardHolder").get("surname").descending();
return getMultiple(queryExp, pageable , Card.class, orderExpression);
翻译查询
SELECT COUNT(t0.CARD_ID) FROM CARD t0 LEFT JOIN CARD_HOLDER t3
ON (t3.CARD_HOLDER_ID = t0.CARD_HOLDER_ID), CARD_HOLDER_STATUS t2, CARD_STATUS t1
WHERE (((((t0.CARD_ISSUER_ID = 10006) AND (t1.STATUS_TYPE = 'ACTIVATED')) AND (t2.STATUS = 'ACTIVE'))
AND (t0.CARD_ID IN ('52683','52692')))
AND ((t1.CARD_STATUS_ID = t0.CARD_STATUS_ID) AND (t2.STATUS_ID = t3.STATUS_ID)))
,什么是 “的ExpressionBuilder”?如果它是一些EclipseLink API类,那么请删除JPA标记 –
你是对的标签 –
请参阅https://www.eclipse.org/eclipselink/documentation/2.5/concepts/expressions002.htm#CJAJIHBJ – Chris