Новое в Java Entities: класс Entity жалуется на то, что его приводят к себе - PullRequest
1 голос
/ 10 февраля 2010

Я довольно новичок в 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 () возвращает объект, и вся документация, которую я нашел в Интернете до сих пор, указывает на то, что это предпочтительный способ сделать это. Итак, мой вопрос, по сути, я делаю что-то не так в этом коде, или это просто сервер запутался где-то по пути?

1 Ответ

3 голосов
/ 10 февраля 2010

I подозревают , что у вас есть 2 LoaPoliciesConfig классов на вашем пути к классам, так что они загружаются / доступны из двух разных загрузчиков классов.

В этой ситуации класс Xот одного загрузчика классов не эквивалентно классу X от второго загрузчика классов, и вы получите путаницу, которую видите.Проверьте ваш путь к классам, а также классы, доступные в вашей среде, и откуда они загружаются (через getClass() и getClassLoader())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...