blaze-persistence
blaze-persistence copied to clipboard
ManyToOne in Embeddable fails Query
Description
Given an Entity tree
ExampleEntity [id: long, name: String]
+-- @Embedded ExampleEmbeddable embed
+-- @ManyToOne Referenced exampleRef [id: long, value: String]
The following query fails:
cbf.create(em, ExampleEntity.class)
.groupBy("id")
.page(0, 10)
.orderByAsc("name")
.orderByAsc("id")
.where("name").eq().value("bar") // query works, if no filter is applied
.getResultList();
Expected behavior
Query always works :)
Actual behavior
org.hibernate.QueryException: could not resolve property: exampleRef of: org.embed.ExampleEntity
at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:77)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:71)
at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyType(AbstractEntityPersister.java:5116)
at com.blazebit.persistence.integration.hibernate.base.HibernateJpaProvider.getJoinMappingPropertyNames(HibernateJpaProvider.java:1551)
at com.blazebit.persistence.impl.CachingJpaProvider.getJoinMappingPropertyNames(CachingJpaProvider.java:402)
at com.blazebit.persistence.impl.EmbeddableSplittingVisitor.addAttributes(EmbeddableSplittingVisitor.java:229)
at com.blazebit.persistence.impl.FunctionalDependencyAnalyzerVisitor.visit(FunctionalDependencyAnalyzerVisitor.java:264)
at com.blazebit.persistence.impl.FunctionalDependencyAnalyzerVisitor.visit(FunctionalDependencyAnalyzerVisitor.java:73)
at com.blazebit.persistence.parser.expression.PathExpression.accept(PathExpression.java:90)
at com.blazebit.persistence.impl.FunctionalDependencyAnalyzerVisitor.analyzeFormsUniqueTuple(FunctionalDependencyAnalyzerVisitor.java:113)
at com.blazebit.persistence.impl.FunctionalDependencyAnalyzerVisitor.getFunctionalDependencyRootExpressions(FunctionalDependencyAnalyzerVisitor.java:143)
at com.blazebit.persistence.impl.AbstractFullQueryBuilder.getUniqueIdentifierExpressions(AbstractFullQueryBuilder.java:565)
at com.blazebit.persistence.impl.AbstractFullQueryBuilder.getIdentifierExpressionsToUse(AbstractFullQueryBuilder.java:574)
at com.blazebit.persistence.impl.PaginatedCriteriaBuilderImpl.isWithInlineIdQuery(PaginatedCriteriaBuilderImpl.java:372)
at com.blazebit.persistence.impl.PaginatedCriteriaBuilderImpl.prepareAndCheck(PaginatedCriteriaBuilderImpl.java:771)
at com.blazebit.persistence.impl.PaginatedCriteriaBuilderImpl.getQuery(PaginatedCriteriaBuilderImpl.java:521)
at com.blazebit.persistence.impl.PaginatedCriteriaBuilderImpl.getResultList(PaginatedCriteriaBuilderImpl.java:613)
Steps to reproduce
Environment
Version: 1.6.3 JPA-Provider: Hibernate 5.6.1.Final DBMS: H2 Application Server: Quarkus 2.6.2.Final
Thanks for the reproducer, I'll look into that!
I just checked the reproducer and it seems that this is not a problem anymore since 1.6.5. Note that you should also switch to blaze-persistence-integration-hibernate-5.6
.