This is an automated email from the ASF dual-hosted git repository. thecarlhall pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-dbutils.git
commit 99071e60fbde76d6584946cc9e08fb97a2aac31f Author: rewerma <[email protected]> AuthorDate: Fri Jul 12 03:21:24 2019 +0800 Add a annotation Column for mapping --- src/main/java/org/apache/commons/dbutils/BeanProcessor.java | 11 ++++++++++- .../java/org/apache/commons/dbutils/annotations/Column.java | 13 +++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/commons/dbutils/BeanProcessor.java b/src/main/java/org/apache/commons/dbutils/BeanProcessor.java index 0f0b7ce..ada9009 100644 --- a/src/main/java/org/apache/commons/dbutils/BeanProcessor.java +++ b/src/main/java/org/apache/commons/dbutils/BeanProcessor.java @@ -16,6 +16,8 @@ */ package org.apache.commons.dbutils; +import org.apache.commons.dbutils.annotations.Column; + import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; @@ -474,7 +476,14 @@ public class BeanProcessor { } for (int i = 0; i < props.length; i++) { - if (propertyName.equalsIgnoreCase(props[i].getName())) { + PropertyDescriptor prop = props[i]; + Column column = prop.getReadMethod().getAnnotation(Column.class); + if (column != null) { + if (propertyName.equalsIgnoreCase(column.name())){ + columnToProperty[col] = i; + break; + } + } else if (propertyName.equalsIgnoreCase(prop.getName())) { columnToProperty[col] = i; break; } diff --git a/src/main/java/org/apache/commons/dbutils/annotations/Column.java b/src/main/java/org/apache/commons/dbutils/annotations/Column.java new file mode 100644 index 0000000..75e712f --- /dev/null +++ b/src/main/java/org/apache/commons/dbutils/annotations/Column.java @@ -0,0 +1,13 @@ +package org.apache.commons.dbutils.annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface Column { + + String name() default ""; +}
