Java 1.7 / Spring 3.1
See below code.
BigDecimal value = queryAsObject (BigDecimal.class, "select balance from financial.accounts where account_id = ?", accountId);
Where queryAsObject comes from an abstract parent class that basically performs CRUD operations.
public <T> T queryAsObject(Class<T> modelClass, String sql, Object... args) { return jdbcTemplate.queryForObject(sql, new HawkBeanPropertyRowMapper<T>(modelClass), args); }
Pretty direct call to spring jdbc. However, this leads to the following exception:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception in org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.math.BigDecimal]: Is it an abstract class?; nested exception is java.lang.InstantiationException: java.math.BigDecimal
With root cause:
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.math.BigDecimal]: Is it an abstract class?; nested exception is java.lang.InstantiationException: java.math.BigDecimal org.springframework.beans.BeanUtils.instantiate(BeanUtils.java:81) org.springframework.jdbc.core.BeanPropertyRowMapper.mapRow(BeanPropertyRowMapper.java:233) org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:92) org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:1) org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:649) org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:587) org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637) org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666) org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:674) org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:734)
What does it mean?
source share