BeanUtils.copyProperties复制主键
时间: 2023-08-25 15:13:07 浏览: 200
BeanUtils.copyProperties方法是用于将一个JavaBean对象的属性值复制到另一个JavaBean对象的对应属性中。它默认是按属性名进行复制的,不包括主键字段。
如果你要复制主键字段,可以通过自定义方法来实现。你可以先使用BeanUtils.copyProperties方法将其他属性复制到目标对象中,然后再手动将主键字段的值复制过来。
示例代码如下:
```java
public static void copyPropertiesWithPrimaryKey(Object source, Object target, String primaryKeyFieldName) {
try {
BeanUtils.copyProperties(target, source);
Field primaryKeyField = source.getClass().getDeclaredField(primaryKeyFieldName);
primaryKeyField.setAccessible(true);
Object primaryKeyValue = primaryKeyField.get(source);
Field targetPrimaryKeyField = target.getClass().getDeclaredField(primaryKeyFieldName);
targetPrimaryKeyField.setAccessible(true);
targetPrimaryKeyField.set(target, primaryKeyValue);
} catch (Exception e) {
e.printStackTrace();
}
}
```
使用方法:
```java
SourceBean source = new SourceBean();
source.setId(1L);
source.setName("John");
TargetBean target = new TargetBean();
copyPropertiesWithPrimaryKey(source, target, "id");
```
这样就可以将源对象source的属性复制到目标对象target中,并且包括主键字段id的复制。请注意,这里假设主键字段的名称是"id",你需要根据实际情况修改primaryKeyFieldName参数的值。
阅读全文