blaze-persistence
blaze-persistence copied to clipboard
Make sure that an array expression can refer to the current join node
From https://github.com/Blazebit/blaze-persistence/discussions/1410 we saw that there are cases of alias collisions. I don't know if we can solve the alias collision, but at least the canonical way of referring to the current join node through _ or maybe also through this should be possible, but currently seems to fail.
Caused by: java.lang.IllegalArgumentException: There are error(s) in entity views!
Exception while resolving type for attribute bet[ch.nextbet.view.BettingView.getBet]:
java.lang.IllegalArgumentException: Attribute '_' not found on type 'Bet'
at com.blazebit.persistence.parser.PathTargetResolvingExpressionVisitor.visit(PathTargetResolvingExpressionVisitor.java:244)
at com.blazebit.persistence.parser.expression.PropertyExpression.accept(PropertyExpression.java:41)
at com.blazebit.persistence.parser.PathTargetResolvingExpressionVisitor.visit(PathTargetResolvingExpressionVisitor.java:337)
at com.blazebit.persistence.parser.expression.PathExpression.accept(PathExpression.java:85)
at com.blazebit.persistence.view.impl.ScalarTargetResolvingExpressionVisitor.resolve(ScalarTargetResolvingExpressionVisitor.java:733)
at com.blazebit.persistence.view.impl.ScalarTargetResolvingExpressionVisitor.visit(ScalarTargetResolvingExpressionVisitor.java:714)
at com.blazebit.persistence.view.impl.ScalarTargetResolvingExpressionVisitor.visit(ScalarTargetResolvingExpressionVisitor.java:680)
at com.blazebit.persistence.parser.predicate.EqPredicate.accept(EqPredicate.java:57)
at com.blazebit.persistence.view.impl.ScalarTargetResolvingExpressionVisitor.visit(ScalarTargetResolvingExpressionVisitor.java:670)
at com.blazebit.persistence.parser.predicate.CompoundPredicate.accept(CompoundPredicate.java:77)
at com.blazebit.persistence.view.impl.ScalarTargetResolvingExpressionVisitor.visit(ScalarTargetResolvingExpressionVisitor.java:318)
at com.blazebit.persistence.parser.expression.ArrayExpression.accept(ArrayExpression.java:45)
at com.blazebit.persistence.parser.PathTargetResolvingExpressionVisitor.visit(PathTargetResolvingExpressionVisitor.java:337)
at com.blazebit.persistence.parser.expression.PathExpression.accept(PathExpression.java:85)
at com.blazebit.persistence.view.impl.metamodel.MetamodelBuildingContextImpl.getPossibleTargetTypes(MetamodelBuildingContextImpl.java:379)
at com.blazebit.persistence.view.impl.metamodel.AttributeMapping.getPossibleTargetTypes(AttributeMapping.java:374)
at com.blazebit.persistence.view.impl.metamodel.AbstractAttribute.<init>(AbstractAttribute.java:165)
at com.blazebit.persistence.view.impl.metamodel.AbstractMethodAttribute.<init>(AbstractMethodAttribute.java:66)
at com.blazebit.persistence.view.impl.metamodel.AbstractMethodSingularAttribute.<init>(AbstractMethodSingularAttribute.java:69)
at com.blazebit.persistence.view.impl.metamodel.attribute.MappingMethodSingularAttribute.<init>(MappingMethodSingularAttribute.java:34)
at com.blazebit.persistence.view.impl.metamodel.MethodAttributeMapping.getMethodAttribute(MethodAttributeMapping.java:795)
at com.blazebit.persistence.view.impl.metamodel.ManagedViewTypeImpl.<init>(ManagedViewTypeImpl.java:319)
at com.blazebit.persistence.view.impl.metamodel.ViewTypeImpl.<init>(ViewTypeImpl.java:51)
at com.blazebit.persistence.view.impl.metamodel.ViewMappingImpl.getManagedViewType(ViewMappingImpl.java:890)
at com.blazebit.persistence.view.impl.metamodel.MetamodelBuildingContextImpl.getManagedViewType(MetamodelBuildingContextImpl.java:234)
at com.blazebit.persistence.view.impl.metamodel.ViewMetamodelImpl.<init>(ViewMetamodelImpl.java:88)