diff --git a/src/main/java/xyz/zhouxy/jdbc/DefaultBeanRowMapper.java b/src/main/java/xyz/zhouxy/jdbc/DefaultBeanRowMapper.java index d45ea58..26faf48 100644 --- a/src/main/java/xyz/zhouxy/jdbc/DefaultBeanRowMapper.java +++ b/src/main/java/xyz/zhouxy/jdbc/DefaultBeanRowMapper.java @@ -60,6 +60,9 @@ import xyz.zhouxy.plusone.commons.annotation.StaticFactoryMethod; */ public class DefaultBeanRowMapper implements RowMapper { + /** JavaBean 类型 */ + private final Class beanType; + /** Bean 的无参构造器 */ private final Constructor constructor; @@ -69,9 +72,11 @@ public class DefaultBeanRowMapper implements RowMapper { /** 列名与 setter 的映射 */ private final Map colSetterMap; - private DefaultBeanRowMapper(Constructor constructor, + private DefaultBeanRowMapper(Class beanType, + Constructor constructor, Map colPropertyMap, Map colSetterMap) { + this.beanType = beanType; this.constructor = constructor; this.colPropertyMap = colPropertyMap; this.colSetterMap = colSetterMap; @@ -109,7 +114,7 @@ public class DefaultBeanRowMapper implements RowMapper { final Map colPropertyMap = buildColPropertyMap(beanType, propertyColMap); final Map colSetterMap = buildColSetterMap(colPropertyMap); - return new DefaultBeanRowMapper<>(constructor, colPropertyMap, colSetterMap); + return new DefaultBeanRowMapper<>(beanType, constructor, colPropertyMap, colSetterMap); } catch (IntrospectionException e) { throw new SQLException("There is an exception occurs during introspection.", e); @@ -140,7 +145,7 @@ public class DefaultBeanRowMapper implements RowMapper { return newInstance; } catch (IllegalAccessException | InstantiationException | InvocationTargetException e) { - throw new SQLException(e); + throw new SQLException("Could not map row to " + beanType.getName(), e); } }