mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-17 00:24:57 +00:00
make SelfRenderingFunctionSqlAstExpression not blow up with NPE
this doesn't exactly *fix* cases with a nonsensible argument list, but it at least gives us a chance to produce a more meaningful error
This commit is contained in:
parent
296cbb88bd
commit
1606953a32
@ -73,10 +73,9 @@ public List<? extends SqlAstNode> getArguments() {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JdbcMappingContainer getExpressionType() {
|
public JdbcMappingContainer getExpressionType() {
|
||||||
if ( type instanceof SqlExpressible) {
|
return type instanceof SqlExpressible
|
||||||
return (JdbcMappingContainer) type;
|
? (JdbcMappingContainer) type
|
||||||
}
|
: expressible;
|
||||||
return expressible;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected FunctionRenderingSupport getRenderer() {
|
protected FunctionRenderingSupport getRenderer() {
|
||||||
@ -107,10 +106,14 @@ public DomainResult<?> createDomainResult(
|
|||||||
jdbcJavaType = jdbcMapping.getJdbcJavaType();
|
jdbcJavaType = jdbcMapping.getJdbcJavaType();
|
||||||
converter = jdbcMapping.getValueConverter();
|
converter = jdbcMapping.getValueConverter();
|
||||||
}
|
}
|
||||||
else {
|
else if ( type != null ) {
|
||||||
jdbcJavaType = type.getExpressibleJavaType();
|
jdbcJavaType = type.getExpressibleJavaType();
|
||||||
converter = null;
|
converter = null;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
jdbcJavaType = null;
|
||||||
|
converter = null;
|
||||||
|
}
|
||||||
final SqlAstCreationState sqlAstCreationState = creationState.getSqlAstCreationState();
|
final SqlAstCreationState sqlAstCreationState = creationState.getSqlAstCreationState();
|
||||||
return new BasicResult(
|
return new BasicResult(
|
||||||
sqlAstCreationState.getSqlExpressionResolver()
|
sqlAstCreationState.getSqlExpressionResolver()
|
||||||
@ -123,7 +126,7 @@ public DomainResult<?> createDomainResult(
|
|||||||
)
|
)
|
||||||
.getValuesArrayPosition(),
|
.getValuesArrayPosition(),
|
||||||
resultVariable,
|
resultVariable,
|
||||||
type.getExpressibleJavaType(),
|
type == null ? null : type.getExpressibleJavaType(),
|
||||||
converter
|
converter
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -178,9 +181,15 @@ public String getCustomWriteExpression() {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JdbcMapping getJdbcMapping() {
|
public JdbcMapping getJdbcMapping() {
|
||||||
return type instanceof SqlExpressible
|
if ( type instanceof SqlExpressible ) {
|
||||||
? ( (SqlExpressible) type ).getJdbcMapping()
|
return ( (SqlExpressible) type ).getJdbcMapping();
|
||||||
: ( (SqlExpressible) expressible ).getJdbcMapping();
|
}
|
||||||
|
else if ( expressible instanceof SqlExpressible ) {
|
||||||
|
return ( (SqlExpressible) expressible ).getJdbcMapping();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user