@Override public boolean needsElementCollectionIdCutoff() { return jpaProvider.needsElementCollectionIdCutoff(); }
valuesNode.getQualificationExpression() == null) { ManagedType<?> managedAttributeType = mainQuery.metamodel.getManagedType(entry.getElementClass()); if (managedAttributeType == null || mainQuery.jpaProvider.needsElementCollectionIdCutoff() && valuesNode.getValuesLikeAttribute() != null && mapping.get(valuesNode.getValuesLikeAttribute()).getAttribute().getPersistentAttributeType() == Attribute.PersistentAttributeType.ELEMENT_COLLECTION) { sb.append("e"); if (valuesNode.isValueClazzAttributeSingular()) {
for (SingularAttribute<?, ?> attribute : JpaMetamodelUtils.getIdAttributes(entityType)) { idAttributeNames.add(attribute.getName()); Collection<String> embeddedPropertyPaths = JpaUtils.getEmbeddedPropertyPaths(attributes, attribute.getName(), mainQuery.jpaProvider.needsElementCollectionIdCutoff(), true); if (embeddedPropertyPaths.isEmpty()) { attributePaths.add(attribute.getName()); attributes = new TreeMap<>(mainQuery.metamodel.getManagedType(ExtendedManagedType.class, managedType).getAttributes()); Collection<String> embeddedPropertyPaths = JpaUtils.getEmbeddedPropertyPaths(attributes, valuesClassAttributeName, mainQuery.jpaProvider.needsElementCollectionIdCutoff(), true); attributePaths.addAll(embeddedPropertyPaths); } else { if (qualificationExpression == null) { Map<String, ExtendedAttribute<?, ?>> attributes = new TreeMap<>(mainQuery.metamodel.getManagedType(ExtendedManagedType.class, entityType).getAttributes()); Collection<String> embeddedPropertyPaths = JpaUtils.getEmbeddedPropertyPaths(attributes, valuesClassAttributeName, mainQuery.jpaProvider.needsElementCollectionIdCutoff(), true); if (embeddedPropertyPaths.isEmpty()) { attributePaths.add(valuesClassAttributeName);
JpaMetamodelAccessor jpaMetamodelAccessor = jpaProvider.getJpaMetamodelAccessor(); boolean needsElementCollectionIdCutoff = jpaProvider.needsElementCollectionIdCutoff(); final Queue<String> attributeQueue = new ArrayDeque<>(bindingMap.keySet()); while (!attributeQueue.isEmpty()) { final Collection<String> embeddedPropertyNames = getEmbeddedPropertyPaths(attributeEntries, attributeName, jpaProvider.needsElementCollectionIdCutoff(), false);
baseNode.appendDeReference(sb, field, renderTreat, externalRepresentation, jpaProvider.needsElementCollectionIdCutoff());
Collection<String> propertyPaths = JpaUtils.getEmbeddedPropertyPaths(ownedSingularAttributes, null, jpaProvider.needsElementCollectionIdCutoff(), true); for (String propertyPath : propertyPaths) {
return !mainQuery.jpaProvider.needsElementCollectionIdCutoff() && managedType.getAttributes().containsKey(fullAttributePath + "." + maybeSingularAssociationIdExpression) && associationAttribute != null && (contains(metamodel.getManagedType(ExtendedManagedType.class, associationAttribute.getElementClass()).getIdAttributes(), maybeSingularAssociationIdExpression) || mainQuery.jpaProvider.supportsSingleValuedAssociationNaturalIdExpressions());