Java 1.7/スプリング 3.1
以下のコードを見てください。
BigDecimal value = queryAsObject (BigDecimal.class,
"select balance from financial.accounts where account_id = ?", accountId);
queryAsObject は、基本的に CRUD 操作を行う抽象親クラスに由来します。
public <T> T queryAsObject(Class<T> modelClass, String sql, Object... args) {
return jdbcTemplate.queryForObject(sql, new HawkBeanPropertyRowMapper<T>(modelClass), args);
}
かなり単純な春の jdbc 呼び出し。ただし、以下の例外が発生します。
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
根本原因:
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)
どういう意味ですか?