| ConstructorResultNativeQueryTest has @SqlResultSetMapping mappings like the following: {{@SqlResultSetMapping( name = "person-id-and-name", classes = { @ConstructorResult( targetClass = Person.class, columns = { @ColumnResult( name = "id" ), @ColumnResult( name = "p_name" ) } ) } )}} The corresponding constructor is: {{public Person(Integer id, String name) { this.id = id; this.name = name; } }} The problem is that, for Oracle, the Integer ID is mapped as a Number(10,0) column, so the value will be returned as a BigDecimal. Because the constructor takes an Integer argument (not a BigDecimal), no appropriate constructor can be found. The fix in this case is to specify the type in the @ColumnResult: @ColumnResult( name = "id", type=Integer.class ) |