Source:
public AttributeEntry(JpaProvider jpaProvider, ManagedType<X> ownerType, Attribute<X, Y> attribute, String attributeName, Class<Y> fieldType, List<Attribute<?, ?>> parents) { this.jpaProvider = jpaProvider; this.ownerType = ownerType; this.attribute = attribute; this.attributePath = Collections.unmodifiableList(parents); this.elementClass = fieldType; this.isOrphanRemoval = jpaProvider.isOrphanRemoval(ownerType, attributeName); this.isDeleteCascaded = jpaProvider.isDeleteCascaded(ownerType, attributeName); this.hasCascadeDeleteCycle = false; JoinType[] joinTypes = JoinType.values(); JpaProvider.ConstraintType[] requiresTreatFilter = new JpaProvider.ConstraintType[joinTypes.length]; if (ownerType instanceof EntityType<?>) { EntityType<?> entityType = (EntityType<?>) ownerType; try { this.isForeignJoinColumn = jpaProvider.isForeignJoinColumn(entityType, attributeName); } catch (Exception e) { throw e; } this.isColumnShared = jpaProvider.isColumnShared(entityType, attributeName); this.isBag = jpaProvider.isBag(entityType, attributeName); this.mappedBy = jpaProvider.getMappedBy(entityType, attributeName); this.joinTable = jpaProvider.getJoinTable(entityType, attributeName); this.columnNames = jpaProvider.getColumnNames(entityType, attributeName); this.columnTypes = jpaProvider.getColumnTypes(entityType, attributeName); for (JoinType joinType : joinTypes) { requiresTreatFilter[joinType.ordinal()] = jpaProvider.requiresTreatFilter(entityType, attributeName, joinType); } } else { this.isForeignJoinColumn = false; this.isColumnShared = false; this.isBag = false; this.mappedBy = null; this.joinTable = null; this.columnNames = null; this.columnTypes = null; } this.joinTypeIndexedRequiresTreatFilter = requiresTreatFilter; }

Target:
public AttributeEntry(JpaProvider jpaProvider, ManagedType<X> ownerType, Attribute<X, Y> attribute, String attributeName, Class<Y> fieldType, List<Attribute<?, ?>> parents) { this.jpaProvider = jpaProvider; this.ownerType = ownerType; this.attribute = attribute; this.attributePath = Collections.unmodifiableList(parents); this.elementClass = fieldType; this.isOrphanRemoval = jpaProvider.isOrphanRemoval(ownerType, attributeName); this.isDeleteCascaded = jpaProvider.isDeleteCascaded(ownerType, attributeName); this.hasCascadeDeleteCycle = false; JoinType[] joinTypes = JoinType.values(); JpaProvider.ConstraintType[] requiresTreatFilter = new JpaProvider.ConstraintType[joinTypes.length]; if (ownerType instanceof EntityType<?>) { EntityType<?> entityType = (EntityType<?>) ownerType; this.isForeignJoinColumn = jpaProvider.isForeignJoinColumn(entityType, attributeName); this.isColumnShared = jpaProvider.isColumnShared(entityType, attributeName); this.isBag = jpaProvider.isBag(entityType, attributeName); this.mappedBy = jpaProvider.getMappedBy(entityType, attributeName); this.joinTable = jpaProvider.getJoinTable(entityType, attributeName); this.columnNames = jpaProvider.getColumnNames(entityType, attributeName); this.columnTypes = jpaProvider.getColumnTypes(entityType, attributeName); for (JoinType joinType : joinTypes) { requiresTreatFilter[joinType.ordinal()] = jpaProvider.requiresTreatFilter(entityType, attributeName, joinType); } } else { this.isForeignJoinColumn = false; this.isColumnShared = false; this.isBag = false; this.mappedBy = null; this.joinTable = null; this.columnNames = null; this.columnTypes = null; } this.joinTypeIndexedRequiresTreatFilter = requiresTreatFilter; }