两个实体类转换异常如何解决

作者:超级管理员 更新时间:2017-09-12 17:57:55 来源:未知 点击:15642
java.lang.ClassCastException: com.finegold.entity.TbRole cannot be cast to com.finegold.entity.TbRol
java.lang.ClassCastException: com.finegold.entity.TbRole cannot be cast to com.finegold.entity.TbRolenode 
package com.finegold.entity;
问题描述:点击新增按钮可以添加到数据库,就是页面会跳出类型转换异常;
显示java.lang.ClassCastException: com.finegold.entity.TbRole cannot be cast to com.finegold.entity.TbRolenode 
********************************************************************************************
实体类,action如下所示
package com.finegold.entity;
TbRole实体类
import java.util.Date;

/**
 * TbRole generated by MyEclipse Persistence Tools
 */
@SuppressWarnings("serial")
public class TbRole extends com.finegold.entity.BaseEntity<Long> implements java.io.Serializable {
  // Fields
  private Long id;

  private String rolename;

  private String roledesc;

  private Date odate;

  private Long rstatus;
  
  private Long sendflag;
  

  // Constructors
  /** default constructor */
  public TbRole() {
  }

  /** minimal constructor */
  public TbRole(Long id) {
    this.id = id;
  }

  /** full constructor */
  public TbRole(Long id, String rolename, String roledesc, Date odate, Long rstatus) {
    this.id = id;
    this.rolename = rolename;
    this.roledesc = roledesc;
    this.odate = odate;
    this.rstatus = rstatus;
  }
由于字数限制SET ,GET在此省略
 
}
---------------------------------------------------------------------------------------------------------------------------
 TbRolenode实体类
package com.finegold.entity;

import java.util.Date;

/**
 * TbRolenode generated by MyEclipse Persistence Tools
 */
@SuppressWarnings("serial")
public class TbRolenode extends com.finegold.entity.BaseEntity<Long> implements java.io.Serializable {
  // Fields
  private Long id;

  private Long roleid;

  private Long nodeid;

  private Long permission;

  private Date odate;

  private Long rstatus;

  // Constructors
  /** default constructor */
  public TbRolenode() {
  }

  /** minimal constructor */
  public TbRolenode(Long id) {
    this.id = id;
  }

  /** full constructor */
  public TbRolenode(Long id, Long roleid, Long nodeid, Long permission, Date odate, Long rstatus) {
    this.id = id;
    this.roleid = roleid;
    this.nodeid = nodeid;
    this.permission = permission;
    this.odate = odate;
    this.rstatus = rstatus;
  }

 // Property accessors
  public Long getId() {
    return this.id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public Long getRoleid() {
    return this.roleid;
  }

  public void setRoleid(Long roleid) {
    this.roleid = roleid;
  }

  public Long getNodeid() {
    return this.nodeid;
  }

  public void setNodeid(Long nodeid) {
    this.nodeid = nodeid;
  }

  public Long getPermission() {
    return this.permission;
  }

  public void setPermission(Long permission) {
    this.permission = permission;
  }

  public Date getOdate() {
    return this.odate;
  }

  public void setOdate(Date odate) {
    this.odate = odate;
  }

  public Long getRstatus() {
    return this.rstatus;
  }

  public void setRstatus(Long rstatus) {
    this.rstatus = rstatus;
  }
}
**************************************************************************************************
Action类如下
/*
 * Generated by MyEclipse Struts Template path: templates/java/JavaClass.vtl
 */
package com.finegold.action;
/**
 * 角色管理action
 * 
 * @struts.action validate="true"
 */
public final class RoleAction extends DispatchAction {
  /*
   * 角色列表 查询 返回
   */
  @SuppressWarnings("unchecked")
public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request,
      HttpServletResponse response)  throws   Exception {
    //角色列表
    Map<String,String> map = null;
    String rtn = Tool.parameter(request, "rtn");// 是否为返回
    if ("1".equals(rtn))// 返回标志位为"1"时,取得之前的检索条件
    {
      map = (Map<String,String>) request.getSession().getAttribute("UserDDD");
    }
    else// 不为"1"时,保存当前的检索条件
    {
      map = com.finegold.util.RequestMap.request2map(request);
      request.getSession().setAttribute("UserDDD", map);
    }
    int pages = Tool.curPage(request, map);
    Page result = RoleHelper.search(map, pages, 12);
    request.setAttribute("page", result);
    return mapping.findForward("list");
  }

  /**
   * 保存用户 包括用户的角色
   */
  public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    // request.setCharacterEncoding(response.getCharacterEncoding());
    // 保存修改或添加
    log.info(request.getCharacterEncoding());
    String strID = request.getParameter("id2");
    TbRole u2 = null;
    boolean beNew = false;
    if (strID == null || "-1".equals(strID) || "".equals(strID)) // 如果是 新建(add) 命令,构造空列表
    {
      u2 = new TbRole(); // 新建
      u2.setId(SeqHelper.genID(TbRole.class)); //assign id
      beNew = true; // 新建用户
    }
    else // modi
    {
      u2 = RoleHelper.load(new Long(strID));
    }
    ParamValueTag pv = new ParamValueTag(u2, RequestMap.request2map(request));
    pv.gen(); // 把form中的信息封装到POJO Bean中
    u2.setSendflag(ConstValue.long0);
    u2.setOdate(new Date());
    // 原有功能
    List<Long> nodeIds = new ArrayList<Long>();
    MutilList ml = new MutilList();
    if (beNew) {
      ml.add(u2);
    }
    else {
      // RoleHelper.getNodes(u2.getId());
      List<TbNode> hasRoles = NodeCache.getInstance().getRoleNodes(u2.getId());//从cache中获取数据
      for (TbNode r : hasRoles)
        nodeIds.add(r.getId()); // 已有角色IDs
      ml.update(u2); // 修改用户
    }
    // 选择的角色
    String[] newNodes = request.getParameterValues("nodeid");
    List<Long> newRolesL = new ArrayList<Long>();
    List<Long> removedNodeList = new ArrayList<Long>();
    if (newNodes != null) {//为空表示没有选择
      for (String nd : newNodes)
        newRolesL.add(new Long(nd));
    }
    for (Long role : newRolesL) {
      if (!nodeIds.contains(role)) {// 原角色不包含--新增
        TbRolenode ur = new TbRolenode(); 
        ur.setNodeid(role);
        ur.setRoleid(u2.getId());
        ur.setId(SeqHelper.genID(TbRolenode.class));
        ml.add(ur);
      }
    }
    for (Long node : nodeIds) {
      if (!newRolesL.contains(node)) {// 新角色不包含原角色--删除
        TbRolenode ur = RoleHelper.getRolenode(u2.getId(), node);
        removedNodeList.add(ur.getNodeid());
        if (ur != null) ml.delete(ur);//
      }
    }
    BaseHelper.mutil(ml);
    NodeCache.invalidate();
    AuditPool.add("ROLE_SAVE",request,u2.getId()+u2.getRolename()+" 原功能"+nodeIds+" 新功能"+newRolesL);
    List<Object> adds = ml.getAdds();
    if (adds != null && adds.size() > 0) {
      StringBuffer sb = new StringBuffer();
      for (Object roleNode : adds) {
        TbRolenode node = (TbRolenode) roleNode;
        sb.append(String.valueOf(node.getNodeid()) + " ");
      }
      AuditPool.add("ROLE_ADDS",request,u2.getId()+u2.getRolename() + ", 新功能" + sb);
    }
    if (removedNodeList != null && removedNodeList.size() > 0) {
      AuditPool.add("ROLE_DELETED",request,u2.getId()+u2.getRolename() + removedNodeList);
    }
    ActionForward af=new ActionForward();
    af.setPath("/role.do?act=list&rtn=1");
    af.setRedirect(true);
    return af;
  }

  /**
   * 增加或修改角色 包括角色的功能 *
   */
  public ActionForward modi(ActionMapping mapping, ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    request.setCharacterEncoding(response.getCharacterEncoding());
    String uid = request.getParameter("roleid");
    TbRole u2 = null;
    List<TbNode> hasNodes = null;
    List<Long> hasNodeIds = new ArrayList<Long>();
    if (!Tool.isEmpty(uid)) {// 修改
      u2 = RoleHelper.load(new Long(uid));
      hasNodes = NodeCache.getInstance().getRoleNodes(u2.getId());//从cache中获取数据 
    }
    else {// 新增
      u2 = new TbRole();
      hasNodes = new ArrayList<TbNode>();
    }
    for (TbNode r1 : hasNodes)
      hasNodeIds.add(r1.getId());// 角色的功能
    List<TbNode> allLvl1 = NodeHelper.allLvl1(null);//.all(); //一级菜单
    List<TbNode> allLvl2 = NodeHelper.allLvl2(null);//.all(); //一级菜单
    request.setAttribute("role", u2);
    request.setAttribute("hasNodeIds", hasNodeIds);//已有功能的IDs
    request.setAttribute("allLvl1", allLvl1);// 所胡有角色
    request.setAttribute("allLvl2", allLvl2);// 所胡有角色
     
    return mapping.findForward("modi");
  }

  /**
   * 用户详细信息 角色
   */
  public ActionForward detail(ActionMapping mapping, ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    request.setCharacterEncoding(response.getCharacterEncoding());
    String uid = request.getParameter("roleid");
    TbRole role2 = null;
    if (Tool.isEmpty(uid)) // 修改
    throw new Exception("参数错误!");
    role2 = RoleHelper.load(new Long(uid));
    //选用用户色集
    List<TbPerson> users = RoleHelper.user(role2.getId());
    request.setAttribute("role", role2);
    request.setAttribute("users", users);
    List<TbNode> nodes = NodeCache.getInstance().getRoleNodes(role2.getId());//从cache中获取数据 
    request.setAttribute("nodes", nodes);
    return mapping.findForward("detail");
  }

  /**
   * 删除角色
   */
  public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    request.setCharacterEncoding(response.getCharacterEncoding());
    String uid = request.getParameter("roleid");
    List<TbRolenode> hasNodes = null;
    if (Tool.isEmpty(uid)) throw new Exception("参数错误!");
    TbRole u2 = RoleHelper.load(new Long(uid));
    // 已有角色集
    hasNodes = RoleHelper.getRolenode(u2.getId());
    MutilList ml = new MutilList();
    ml.delete(hasNodes);
    
    List<TbUserole> usRoles = RoleHelper.getUsers(u2.getId());
    ml.delete(usRoles);
    ml.delete(u2);
    AuditPool.add("ROLE_DEL",request,u2.getId()+u2.getRolename());
    //ml.update(u2); // 逻辑删除
    BaseHelper.mutil(ml); // 数据库操作
    ActionForward af=new ActionForward();
    af.setPath("/role.do?act=list&rtn=1");
    af.setRedirect(true);
    return af;
  }
}
-------------------------------
顶顶,手工顶贴,各位大佬快来围观
-------------------------------
代码能放到code标签里面么,你这样看着非常不爽~ 
-------------------------------
引用 2 楼 pheonix0992 的回复:
代码能放到code标签里面么,你这样看着非常不爽~ 
嗯嗯,我试一下
-------------------------------
引用 2 楼 pheonix0992 的回复:
代码能放到code标签里面么,你这样看着非常不爽~ 
转到新帖了
-------------------------------
引用 4 楼 kuangzhixuan 的回复:
Quote: 引用 2 楼 pheonix0992 的回复:

代码能放到code标签里面么,你这样看着非常不爽~ 
转到新帖了
大佬快帮我看看,谢谢啦

推荐阅读

热门内容

jdk1.8和jdk1.7中HashMa

本帖最后由kai_12于2017-09-...

明明有分号,怎么还提示没有分号

--------------------...

jsp用ajax提交form表单

没接触过ajax,找了网上的例子试了下。...

关于HQL的一个报错

本帖最后由zxy16305于2017-0...

这哪错了???

--------------------...

为什么Iterator会找不到???

--------------------...

问一下这个方法来自哪个包下面?

提示找不到主法,forEach不知道来自...

java 编译时出现需要;这个符号,哪位

为什么会出现这个。我是初学者。-----...

Java svn问题求助

我从svn上检出的项目怎么添加到tomc...

求助第一次使用jQuery实现json交

报的错误 js文件位置代码<%@ pag...

最新内容

调用静态类报空指针,求解

class LoanUtil    @Autowired     public ...

两个实体类转换异常如何解决

java.lang.ClassCastException: com.finego...

新手上路 求罩

如果我   String  str =" , , BS_STATIC_DATA,...

tomcat 部署项目访问404

公司买了一个项目,原本可以访问,自己重新部署就404了他原来的配置

求教一段scala代码,晕菜了,初学

package testimport scala.io.Sourceclass ...

创建maven module失败

怎么回事啊?什么情况呢?----------------------------...

spring配置出错

在配置spring配置文件后进行单元测试时报错,是不是jdk版本和spring版...

jdk1.8和jdk1.7中HashMap实现了Map.Entry接口的静态内部类的方法名为什么不同?

本帖最后由kai_12于2017-09-1120:08:16编辑今天学习Hash...

明明有分号,怎么还提示没有分号

-------------------------------这里是说明你程序写...

求修改一段php代码

求修改一下这个php代码,让动态生成的缩略图固定高宽,拉伸不变形,不留空白

关于自定义jar包引入第三方jar包的问题

我在写一个web项目的时候,遇到了这个问题。我自定义的一些工具被我打成jar包然...

php curl连接怎么加参数进去

jsp用ajax提交form表单

没接触过ajax,找了网上的例子试了下。但点了提交没有值传回来,不知道哪里出错了...

php curl怎么提取文件内容,本人小白,麻烦大神解释一下谢谢

后台代码

关于HQL的一个报错

本帖最后由zxy16305于2017-09-0809:59:07编辑在bean中...

关于微博等第三方登陆接口

各位大神,我在用微博登陆网站时,用了微博的demo,能够实现登陆,但是有几个问题...

深圳IT小白找工作可以这么难吗?

        在各个招聘网上看到的招聘不是什么不要工作经验就是什么包吃住还有就...

关于静态static的疑惑

1.int f(int n){static int i = 1;n += i;i...

请问在Eclipse创建Layout如何调用真机测试呀?

如图,本人刚入门安卓,安装也是折腾了好久才安装完,实在不想用里面的模拟器...开...

想做一个只接收数据的客户端,服务器是一个不断无条件发送数据的服务器,该怎么办?

import java.io.BufferedReader;import jav...