(crm-bug)Struts has detected an unhandled exception

Struts has detected an unhandled exception:The given object has a null identifier: com.huiyu.crm.domain.SysUserGroup

错误提示信息::

org.springframework.dao.InvalidDataAccessApiUsageException: The given object has a null identifier: com.huiyu.crm.domain.SysUserGroup; 
nested exception is org.hibernate.TransientObjectException: The given object has a null identifier: com.huiyu.crm.domain.SysUserGroup



这个错误在提示说在SysUserGroup这个对象有一个空的标志符,在跟踪debug后发现在一个地方出错了:

BeanUtils.copyProperties(sysUserGroup, sysUserGroupFrom);



把一个对象的值复制给另一个对象,这个 copyProperties () 方法在进行javaweb开发的时候经常会用到,而且很方便,关于这个方法的介绍在:【转】关于BeanUtils.copyProperties的用法和优缺点

这个方法的好处有很多,但是对于两个对象的属性不一样的时候就很不能用了,所以针对这个错误,自行查了一下自己定义的两个po和vo对象发现:


po:

    private Integer id;
    private String remark;
    private String name;
    private String principal;//部门负责人
    private String incumbent;//部门职能



vo:

    private String id;
    private String name;
    private String principal;
    private String incumbent;
    private String remark;

在Id的类型不一样。


解决办法:

自行定义一个工具类进行数据复制:

public class copy {
    public void SysUserGroupCopyProperties(SysUserGroup sysUserGroup,
            SysUserGroupFrom sysUserGroupFrom) {
        sysUserGroup.setId(Integer.parseInt(sysUserGroupFrom.getId()));//利用integer这个类的数据强制转换,进行string 到int的转换
        sysUserGroup.setName(sysUserGroupFrom.getName());
        sysUserGroup.setIncumbent(sysUserGroupFrom.getIncumbent());
        sysUserGroup.setPrincipal(sysUserGroupFrom.getPrincipal());
        sysUserGroup.setRemark(sysUserGroupFrom.getRemark());

    }
}

问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值