add not update
This commit is contained in:
parent
42338ec447
commit
ae2f53c0e3
@ -5,6 +5,7 @@ import java.util.HashMap;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import me.chyxion.tigon.mybatis.Transient;
|
||||
import me.chyxion.tigon.mybatis.NotUpdate;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
import me.chyxion.tigon.mybatis.NotUpdateWhenNull;
|
||||
import org.springframework.util.ReflectionUtils.FieldFilter;
|
||||
@ -53,7 +54,7 @@ public class MappableSupport implements Mappable {
|
||||
@Override
|
||||
public boolean matches(final Field field) {
|
||||
field.setAccessible(true);
|
||||
int modifiers = field.getModifiers();
|
||||
final int modifiers = field.getModifiers();
|
||||
final Object fieldValue =
|
||||
ReflectionUtils.getField(field, MappableSupport.this);
|
||||
return !Modifier.isTransient(modifiers) &&
|
||||
@ -61,8 +62,9 @@ public class MappableSupport implements Mappable {
|
||||
!Modifier.isFinal(modifiers) &&
|
||||
!Modifier.isPublic(modifiers) &&
|
||||
!Modifier.isStatic(modifiers) &&
|
||||
(forUpdate ? fieldValue != null ||
|
||||
!field.isAnnotationPresent(NotUpdateWhenNull.class) : true);
|
||||
(forUpdate ? !field.isAnnotationPresent(NotUpdate.class)
|
||||
&& (fieldValue != null
|
||||
|| !field.isAnnotationPresent(NotUpdateWhenNull.class)) : true);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -0,0 +1,16 @@
|
||||
package me.chyxion.tigon.mybatis;
|
||||
|
||||
import java.lang.annotation.Target;
|
||||
import java.lang.annotation.Retention;
|
||||
import static java.lang.annotation.ElementType.FIELD;
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
|
||||
/**
|
||||
* @author Shaun Chyxion <br>
|
||||
* chyxion@163.com <br>
|
||||
* Jun 25, 2017 09:57:32
|
||||
*/
|
||||
@Target(FIELD)
|
||||
@Retention(RUNTIME)
|
||||
public @interface NotUpdate {
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user