Getting error Could not locate appropriate constructor on class
This exception happens because JPA doesn't change column types returned from the database for native queries. Because of this, you have type mismatch. I'm not sure about which column causes this problem in your case (this depends on DBMS you use), but I would suspect you have BigInteger
in the result set instead of Integer
for score column. To be 100% sure, add a breakpoint to ConstructorResultColumnProcessor.resolveConstructor(Class targetClass, List<Type> types)
and investigate. After you find a mismatch, change field type in your mapping class.
Another solution will be not to use @SqlResultSetMapping
at all. As your CourseCompletion
class is a managed entity, you should be able to map native query to it directly. See this question for more information.
Adding a break point to the ConstructorResultColumnProcessor.resolveConstructor
worked for me. My query had a rowNum
selection and it's mapped as BigDecimal
type. I was having the constructor with a BigInteger
.