Christian Beikov (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
) *created* an issue
Hibernate ORM (
https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiZDliZmUwY2Q3...
) / Bug (
https://hibernate.atlassian.net/browse/HHH-14015?atlOrigin=eyJpIjoiZDliZm...
) HHH-14015 (
https://hibernate.atlassian.net/browse/HHH-14015?atlOrigin=eyJpIjoiZDliZm...
) Equality predicate for embedded id and subquery doesn't work (
https://hibernate.atlassian.net/browse/HHH-14015?atlOrigin=eyJpIjoiZDliZm...
)
Issue Type: Bug Affects Versions: 5.4.14 Assignee: Unassigned Components: hibernate-core
Created: 12/May/2020 06:14 AM Priority: Major Reporter: Christian Beikov (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
)
It's a simple model
@Embeddable
public class AnimalId implements Serializable {
@Column(name = "id" , nullable = false )
private Integer id;
@Column(name = "name" , nullable = false )
private String name;
}
@Entity
@Table(name = "animal" )
public class Animal implements Serializable {
@EmbeddedId
private AnimalId id;
@Column(name = "info" , nullable = false )
private String info;
}
The following query leads to an exception SELECT 1 FROM Animal a WHERE a.id = (SELECT b.id
FROM Animal b)
org.hibernate.HibernateException: SqlNode's text did not reference expected number of
columns
at
org.hibernate.hql.internal.ast.tree.BinaryLogicOperatorNode.extractMutationTexts(BinaryLogicOperatorNode.java:242)
at
org.hibernate.hql.internal.ast.tree.BinaryLogicOperatorNode.mutateRowValueConstructorSyntax(BinaryLogicOperatorNode.java:131)
at
org.hibernate.hql.internal.ast.tree.BinaryLogicOperatorNode.mutateRowValueConstructorSyntaxesIfNecessary(BinaryLogicOperatorNode.java:85)
at
org.hibernate.hql.internal.ast.tree.BinaryLogicOperatorNode.initialize(BinaryLogicOperatorNode.java:65)
at
org.hibernate.hql.internal.ast.HqlSqlWalker.prepareLogicOperator(HqlSqlWalker.java:1476)
at
org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:4712)
at
org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2161)
at
org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:827)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:621)
at
org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:325)
at
org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:273)
at
org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:272)
at
org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:192)
at
org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:144)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:113)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73)
at
org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:155)
at
org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:604)
at
org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:716)
When using the IN predicate, the query works, but it might be desireable to use quantifier
{{ = ALL()}}.
(
https://hibernate.atlassian.net/browse/HHH-14015#add-comment?atlOrigin=ey...
) Add Comment (
https://hibernate.atlassian.net/browse/HHH-14015#add-comment?atlOrigin=ey...
)
Get Jira notifications on your phone! Download the Jira Cloud app for Android (
https://play.google.com/store/apps/details?id=com.atlassian.android.jira....
) or iOS (
https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=Em...
) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100126- sha1:dd08494 )