开发环境:maven 、spring boot、jdk1.8
一:工具类(更进beanutils.copyProperties中传递ingoreProperties数组):读取实例类不为null的属性
package cn.cqs.redisitem.utils;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import java.beans.PropertyDescriptor;
import java.util.HashSet;
import java.util.Set;
/**
* @discription :
* @author: cqs
* @date: 2020-09-14 12:58
*/
public class BeanUtil {
/**
* 功能描述 :判断Entity属性不能null值的
*
* @param entity:
* @return java.lang.String[]
* @author cqs
* @date 2020/9/14
*/
public static String[] getNotNUllPropertyNames(Object entity) {
BeanWrapper beanWrapper = new BeanWrapperImpl(entity);
PropertyDescriptor[] propertyDescriptors = beanWrapper.getPropertyDescriptors();
Set set = new HashSet();
for (PropertyDescriptor pd : propertyDescriptors) {
Object propertyValue = beanWrapper.getPropertyValue(pd.getName());
if (propertyValue != null) {
set.add(pd.getName());
}
}
return set.toArray(new String[set.size()]);
}
}
二:实例类:
@Entity
@DynamicInsert
//@DynamicUpdate
public class SysUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer userId;
private Integer orgaztionId;
private String username;
private String password;
private String salt;
private Boolean locked;
省略getter/setter
}
三:测试类
@Test
void beanCoptyof() {
SysUser sysUser2 = new SysUser();
sysUser2.setUsername("caoqishun");
sysUser2.setPassword("cqs");
System.out.println("原对象---:"+sysUser2.toString());
SysUser sysUser3 = new SysUser();
sysUser3.setUsername("cqs11111111");
String[] strings = BeanUtil.getNotNUllPropertyNames(sysUser2);
BeanUtils.copyProperties(sysUser2,sysUser3,strings);
System.out.println("新对象集合---:"+sysUser3.toString());