从实例到其自己的类的类转换失败的可能原因?

Psy*_*syx 1 java jpa cdi java-ee-7

IE:com.adms.fcl3.entity.User无法强制转换为com.adms.fcl3.entity.User

自从将项目从EJB/ManagedBeans迁移到CDI以来,我开始遇到这种错误,所以我的猜测是AoP/Injection混乱了类.

但我没有证据证明这一点.也没有解决方案.

负责的代码:

public User getByLoginPasswdValid(String login, String passwd) {
    TypedQuery<User> q = em.createNamedQuery("User.findByLoginPasswdValid", User.class);
    q.setParameter("login", login);
    q.setParameter("passwd", passwd);
    List<User> results = q.getResultList();
    if (results.isEmpty()) {
        return null;
    }
    return results.get(0);
}
Run Code Online (Sandbox Code Playgroud)

失败了return results.get(0);.Debuger向我确认该列表有效,具有User对象,具有适当的值等...

Pet*_*rey 6

如果有多个类加载器,则可以同时加载具有相同名称的两个类.这两类不可互换.不幸的是,ClassCastException没有给出任何迹象表明虽然类具有相同的名称,但它们不是同一个类,并且具有不同的类加载器.