@SuppressWarnings("unchecked") protected Join<UserEntity, NameEntity> createOrGetJoinForName(final Root<UserEntity> root) { for (final Join<UserEntity, ?> currentJoin : root.getJoins()) { if (currentJoin.getAlias() != null && currentJoin.getAlias().equals(JOIN_ALIAS_FOR_NAME)) { return (Join<UserEntity, NameEntity>) currentJoin; } } Join<UserEntity, NameEntity> join = root.join(UserEntity_.name, JoinType.LEFT); join.alias(JOIN_ALIAS_FOR_NAME); return join; }
@SuppressWarnings("unchecked") protected SetJoin<UserEntity, ExtensionFieldValueEntity> createOrGetJoin(String alias, Root<UserEntity> root, SetAttribute<UserEntity, ExtensionFieldValueEntity> attribute) { for (Join<UserEntity, ?> currentJoin : root.getJoins()) { if (currentJoin.getAlias() == null) { // if alias is null, it is not an alias for an extension join, so we ignore it continue; } if (currentJoin.getAlias().equals(alias)) { return (SetJoin<UserEntity, ExtensionFieldValueEntity>) currentJoin; } } final SetJoin<UserEntity, ExtensionFieldValueEntity> join = root.join(attribute, JoinType.LEFT); join.alias(alias); return join; } }
private Path<?> determineDescriptionCriteraPath(final JPAPath selectItemPath, Path<?> p, final JPAElement jpaPathElement) { final Set<?> allJoins = root.getJoins(); final Iterator<?> iterator = allJoins.iterator(); while (iterator.hasNext()) { Join<?, ?> join = (Join<?, ?>) iterator.next(); if (join.getAlias() != null && join.getAlias().equals(selectItemPath.getAlias())) { final Set<?> subJoins = join.getJoins(); for (final Object sub : subJoins) { // e.g. "Organizations?$filter=Address/RegionName eq 'Kalifornien' // see createFromClause in JPAExecutableQuery if (((Join<?, ?>) sub).getAlias() != null && ((Join<?, ?>) sub).getAlias().equals(jpaPathElement.getExternalName())) { join = (Join<?, ?>) sub; } } p = join.get(((JPADescriptionAttribute) jpaPathElement).getDescriptionAttribute().getInternalName()); break; } } return p; } }
@SuppressWarnings("unchecked") protected <T> SetJoin<GroupEntity, T> createOrGetJoin(String alias, Root<GroupEntity> root, SetAttribute<GroupEntity, T> attribute) { for (Join<GroupEntity, ?> currentJoin : root.getJoins()) { if (currentJoin.getAlias().equals(alias)) { return (SetJoin<GroupEntity, T>) currentJoin; } } final SetJoin<GroupEntity, T> join = root.join(attribute, JoinType.LEFT); join.alias(alias); return join; }
tuples.add(attr.getName()); PrimaryExpression primExpr = new PrimaryExpression(new ArrayList(tuples)); JoinExpression joinExpr = new JoinExpression(primExpr, join.getAlias(), jt); if (currentExpr instanceof ClassExpression)