老是setXXX(getXXX()),有没有简化的办法?

在保存数据的时候总是会碰到这样的重复且啰嗦的语句,如:
user.setDate(form.getDate());
user.setName(form.getName());
user.setUserId(form.getUserId());
user.setPassword(form.getPassword());
user.setTitle(form.getTitle());
........
this.getUserService().save(user);

上面的语句属性少一些倒还可以接受,万一有很多需要setXXX(getXXX()),这样写太麻烦了。
Hibernate中有没有简化的写法,我记得有一个类可以,但忘了,麻烦指点一下,谢谢了先.

[code="java"]import org.apache.commons.beanutils.BeanUtils;
保存数据时先 User user = new User();
然后把你传过来的参数用个实体接收。
BeanUtils.copyProperties(user, '实体名');
[/code]
这样就可以了,避免了很多的set,get方法。但是对于字段少的使用此方法效率会不如set,get的方式。

同意楼上意见

使用Apache的开源包BeanUtils,使用方法见一楼,或者自己用反射写一个方法。
[code="java"]
public static Field getType(Object orig, String name) {
Field[] origF = orig.getClass().getDeclaredFields();
for (int i = 0; i < origF.length; i++) {
if (origF[i].getName().equals(name)) {
return origF[i];
}
}
return null;
}

public static Object copy(Object dest, Object orig) {
    if (dest == null || orig == null) {
        return dest;
    }

    Field[] destF = dest.getClass().getDeclaredFields();

    for (int i = 0; i < destF.length; i++) {
        Class destType = destF[i].getType();
        Field origField = BeanUtil.getType(orig, destF[i].getName());
        if (origField == null) {
            continue;
        }
        Class origType = origField.getType();
        if (origType != null && destType != null && destType.equals(origType)
                && !destType.equals(Class.class)) {
            if(!Collection.class.isAssignableFrom(origType)){                   
                try{
                    destF[i].setAccessible(true);
                    Object value = destF[i].get(dest);
                    if(null != value) {
                        origField.setAccessible(true);
                        origField.set(orig, value);
                    }
                }catch(Exception ex){   
                    ex.printStackTrace();
                }
            }
        }
    }

    return orig;
}[/code]