HHH-8068 Suggestion for improvement.
This commit is contained in:
parent
9ee5392456
commit
d0a7a017a5
|
@ -39,6 +39,7 @@ import org.hibernate.internal.util.StringHelper;
|
|||
import org.hibernate.transform.AliasToBeanConstructorResultTransformer;
|
||||
import org.hibernate.transform.ResultTransformer;
|
||||
import org.hibernate.transform.Transformers;
|
||||
import org.hibernate.type.PrimitiveType;
|
||||
import org.hibernate.type.Type;
|
||||
|
||||
/**
|
||||
|
@ -184,10 +185,23 @@ public class ConstructorNode extends SelectExpressionList implements AggregatedS
|
|||
catch ( PropertyNotFoundException e ) {
|
||||
// this is the exception returned by ReflectHelper.getConstructor() if it cannot
|
||||
// locate an appropriate constructor
|
||||
throw new DetailedSemanticException( "Unable to locate appropriate constructor on class [" + className + "]", e );
|
||||
String formattedMessage = formatMissingContructorExceptionMessage(className);
|
||||
throw new DetailedSemanticException( formattedMessage, e );
|
||||
}
|
||||
}
|
||||
|
||||
private String formatMissingContructorExceptionMessage(String className) {
|
||||
String[] params = new String[constructorArgumentTypes.length];
|
||||
for ( int j = 0; j < constructorArgumentTypes.length; j++ ) {
|
||||
params[j] = constructorArgumentTypes[j] instanceof PrimitiveType ?
|
||||
( ( PrimitiveType ) constructorArgumentTypes[j] ).getPrimitiveClass().getName() :
|
||||
constructorArgumentTypes[j].getReturnedClass().getName();
|
||||
}
|
||||
String formattedList = params.length == 0 ? "no arguments constructor" : StringHelper.join(", ", params);
|
||||
return String.format( "Unable to locate appropriate constructor on class [%s]. Expected types are: %s",
|
||||
className, formattedList );
|
||||
}
|
||||
|
||||
public Constructor getConstructor() {
|
||||
return constructor;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue