На карте модели может быть или нет CardHolder (1: 1), и я хотел бы получить каждый фильтр карт эмитентом, связанным с активированными карточкамиHolders плюс карты без cardHolders, поэтому мне нужно полное внешнее соединение. Хотя ниже запрос перевести налево присоединиться возвращения только карты с держателей карт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"? Если это какой-то класс API EclipseLink, то любезно удалите тег JPA –
, вы правы в отношении тега –
См. Https://www.eclipse.org/eclipselink/documentation/2.5/concepts/expressions002.htm#CJAJIHBJ – Chris