Skip to content

Commit 9289562

Browse files
cigalybeikov
authored andcommitted
HHH-18274 Properly resolving Java type in binary and unary expressions
1 parent f7ebb7f commit 9289562

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

hibernate-core/src/main/java/org/hibernate/query/sqm/internal/TypecheckUtil.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -443,8 +443,8 @@ public static void assertAssignable(
443443
}
444444

445445
public static void assertOperable(SqmExpression<?> left, SqmExpression<?> right, BinaryArithmeticOperator op) {
446-
final SqmExpressible<?> leftNodeType = left.getNodeType();
447-
final SqmExpressible<?> rightNodeType = right.getNodeType();
446+
final SqmExpressible<?> leftNodeType = left.getExpressible();
447+
final SqmExpressible<?> rightNodeType = right.getExpressible();
448448
if ( leftNodeType != null && rightNodeType != null ) {
449449
final Class<?> leftJavaType = leftNodeType.getRelationalJavaType().getJavaTypeClass();
450450
final Class<?> rightJavaType = rightNodeType.getRelationalJavaType().getJavaTypeClass();
@@ -579,7 +579,7 @@ public static void assertDuration(SqmExpression<?> expression) {
579579
}
580580

581581
public static void assertNumeric(SqmExpression<?> expression, UnaryArithmeticOperator op) {
582-
final SqmExpressible<?> nodeType = expression.getNodeType();
582+
final SqmExpressible<?> nodeType = expression.getExpressible();
583583
if ( nodeType != null ) {
584584
final DomainType<?> domainType = nodeType.getSqmType();
585585
if ( !( domainType instanceof JdbcMapping ) || !( (JdbcMapping) domainType ).getJdbcType().isNumber() ) {

hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmBinaryArithmetic.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
import org.hibernate.query.sqm.tree.SqmCopyContext;
1515
import org.hibernate.query.sqm.tree.select.SqmSelectableNode;
1616

17-
import org.checkerframework.checker.nullness.qual.Nullable;
18-
1917
import static org.hibernate.query.sqm.BinaryArithmeticOperator.ADD;
2018
import static org.hibernate.query.sqm.BinaryArithmeticOperator.SUBTRACT;
2119
import static org.hibernate.type.spi.TypeConfiguration.isDuration;
@@ -37,8 +35,8 @@ public SqmBinaryArithmetic(
3735
//noinspection unchecked
3836
super(
3937
(SqmExpressible<T>) domainModel.getTypeConfiguration().resolveArithmeticType(
40-
lhsOperand.getNodeType(),
41-
rhsOperand.getNodeType(),
38+
lhsOperand.getExpressible(),
39+
rhsOperand.getExpressible(),
4240
operator
4341
),
4442
nodeBuilder
@@ -52,8 +50,8 @@ public SqmBinaryArithmetic(
5250
( operator == ADD || operator == SUBTRACT ) ) {
5351
return;
5452
}
55-
this.lhsOperand.applyInferableType( rhsOperand.getNodeType() );
56-
this.rhsOperand.applyInferableType( lhsOperand.getNodeType() );
53+
this.lhsOperand.applyInferableType( rhsOperand.getExpressible() );
54+
this.rhsOperand.applyInferableType( lhsOperand.getExpressible() );
5755
}
5856

5957
public SqmBinaryArithmetic(

hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmUnaryOperation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public SqmUnaryOperation(UnaryArithmeticOperator operation, SqmExpression<T> ope
2525
operation,
2626
operand,
2727
operand.nodeBuilder().getTypeConfiguration().getBasicTypeForJavaType(
28-
operand.getNodeType().getRelationalJavaType().getJavaType()
28+
operand.getExpressible().getRelationalJavaType().getJavaType()
2929
)
3030
);
3131
}

0 commit comments

Comments
 (0)