Java实体的新手:实体类抱怨被强制转换为自身

时间:2010-02-09 22:32:28

标签: java entity

我是Java Entities的新手,我从Query.getSingleResult()调用中得到了一些奇怪的问题。这是一段代码:

  LoaPoliciesConfig policy = new LoaPoliciesConfig();
  EntityManager em = getEntityManager();
  try
  {
     Query q = em.createNamedQuery("LoaPoliciesConfig.findByName");
     q.setParameter("policyName", policyName);
     Object ret = q.getSingleResult();
     policy = (LoaPoliciesConfig) ret;
  }

经过多年的良好工作,这突然开始给我这个错误:

CRAAC.WebService.DataAccess.LoaPoliciesConfig cannot be cast to
CRAAC.WebService.DataAccess.LoaPoliciesConfig

首先,当重新启动服务器时,它就消失了,但是最后一次发生这种情况似乎仍然存在。

getSingleQuery()返回一个Object,到目前为止我在网上找到的所有文档似乎都表明这是首选的方法。所以,我的问题基本上是我在这段代码中做错了什么,或者只是服务器在这个过程中某处混淆了?

1 个答案:

答案 0 :(得分:3)

怀疑您的类路径上有2个LoaPoliciesConfig类,以便从两个不同的类加载器加载/访问它们。

在这种情况下,来自一个类加载器的类X与第二个类加载器的不等同到类X,你会看到你所看到的混乱。检查您的类路径,环境中可用的类以及加载位置(通过getClass()getClassLoader()