Skip to content

Commit c4589ed

Browse files
committed
HHH-18274 Applied pull request suggestions
1 parent e9f9296 commit c4589ed

File tree

3 files changed

+10
-36
lines changed

3 files changed

+10
-36
lines changed

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

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -491,8 +491,8 @@ else if ( !isTypeAssignable( targetType, expressionType, bindingContext) ) {
491491
}
492492

493493
public static void assertOperable(SqmExpression<?> left, SqmExpression<?> right, BinaryArithmeticOperator op) {
494-
final SqmExpressible<?> leftNodeType = isGeneric( left ) ? left.getExpressible() : left.getNodeType();
495-
final SqmExpressible<?> rightNodeType = isGeneric( right ) ? right.getExpressible() : right.getNodeType();
494+
final SqmExpressible<?> leftNodeType = left.getExpressible();
495+
final SqmExpressible<?> rightNodeType = right.getExpressible();
496496
if ( leftNodeType != null && rightNodeType != null ) {
497497
final Class<?> leftJavaType = leftNodeType.getRelationalJavaType().getJavaTypeClass();
498498
final Class<?> rightJavaType = rightNodeType.getRelationalJavaType().getJavaTypeClass();
@@ -590,11 +590,6 @@ else if ( isNumberArray( leftNodeType ) ) {
590590
}
591591
}
592592

593-
public static boolean isGeneric(SqmTypedNode<?> arg) {
594-
return arg instanceof SqmPath && ( (SqmPath) arg ).getModel() instanceof SqmPathSource
595-
&& ( (SqmPathSource) ( (SqmPath) arg ).getModel() ).isGeneric();
596-
}
597-
598593
public static boolean isNumberArray(SqmExpressible<?> expressible) {
599594
if ( expressible != null ) {
600595
final DomainType<?> domainType = expressible.getSqmType();
@@ -633,9 +628,7 @@ public static void assertDuration(SqmExpression<?> expression) {
633628
}
634629

635630
public static void assertNumeric(SqmExpression<?> expression, UnaryArithmeticOperator op) {
636-
final SqmExpressible<?> nodeType = isGeneric( expression )
637-
? expression.getExpressible()
638-
: expression.getNodeType();
631+
final SqmExpressible<?> nodeType = expression.getExpressible();
639632
if ( nodeType != null ) {
640633
if ( !( nodeType.getSqmType() instanceof JdbcMapping jdbcMapping )
641634
|| !jdbcMapping.getJdbcType().isNumber() ) {

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

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,9 @@
99
import org.hibernate.query.sqm.NodeBuilder;
1010
import org.hibernate.query.sqm.SemanticQueryWalker;
1111
import org.hibernate.query.sqm.SqmExpressible;
12-
import org.hibernate.query.sqm.SqmPathSource;
1312
import org.hibernate.query.sqm.tree.SqmCopyContext;
14-
import org.hibernate.query.sqm.tree.domain.SqmPath;
1513
import org.hibernate.query.sqm.tree.select.SqmSelectableNode;
1614

17-
1815
import static org.hibernate.query.sqm.BinaryArithmeticOperator.ADD;
1916
import static org.hibernate.query.sqm.BinaryArithmeticOperator.SUBTRACT;
2017
import static org.hibernate.type.spi.TypeConfiguration.isDuration;
@@ -36,8 +33,8 @@ public SqmBinaryArithmetic(
3633
//noinspection unchecked
3734
super(
3835
(SqmExpressible<T>) domainModel.getTypeConfiguration().resolveArithmeticType(
39-
getExpressibleNodeType( lhsOperand ),
40-
getExpressibleNodeType( rhsOperand ),
36+
lhsOperand.getExpressible(),
37+
rhsOperand.getExpressible(),
4138
operator
4239
),
4340
nodeBuilder
@@ -51,20 +48,8 @@ public SqmBinaryArithmetic(
5148
( operator == ADD || operator == SUBTRACT ) ) {
5249
return;
5350
}
54-
this.lhsOperand.applyInferableType( getExpressibleNodeType( rhsOperand ) );
55-
this.rhsOperand.applyInferableType( getExpressibleNodeType( lhsOperand ) );
56-
}
57-
58-
private static SqmExpressible<?> getExpressibleNodeType(SqmExpression<?> arg) {
59-
if ( arg instanceof SqmPath ) {
60-
SqmPath path = (SqmPath) arg;
61-
if ( path.getModel() instanceof SqmPathSource ) {
62-
if ( ( (SqmPathSource) path.getModel() ).isGeneric() ) {
63-
return path.getResolvedModel();
64-
}
65-
}
66-
}
67-
return arg.getNodeType();
51+
this.lhsOperand.applyInferableType( rhsOperand.getExpressible() );
52+
this.rhsOperand.applyInferableType( lhsOperand.getExpressible() );
6853
}
6954

7055
public SqmBinaryArithmetic(

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

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
import org.hibernate.query.sqm.tree.SqmCopyContext;
1111
import org.hibernate.query.sqm.tree.select.SqmSelectableNode;
1212

13-
import static org.hibernate.query.sqm.internal.TypecheckUtil.isGeneric;
14-
1513
/**
1614
* @author Steve Ebersole
1715
*/
@@ -23,11 +21,9 @@ public SqmUnaryOperation(UnaryArithmeticOperator operation, SqmExpression<T> ope
2321
this(
2422
operation,
2523
operand,
26-
isGeneric( operand ) ?
27-
operand.getExpressible() :
28-
operand.nodeBuilder().getTypeConfiguration().getBasicTypeForJavaType(
29-
operand.getNodeType().getRelationalJavaType().getJavaType()
30-
)
24+
operand.nodeBuilder().getTypeConfiguration().getBasicTypeForJavaType(
25+
operand.getExpressible().getRelationalJavaType().getJavaType()
26+
)
3127
);
3228
}
3329

0 commit comments

Comments
 (0)