Erro no Casting

Boa tarde Galera.
To com um problema, acontece o seguinte erro

Exception in thread “main” java.lang.ClassCastException: br.com.restorant.entity.Category cannot be cast to br.com.restorant.entity.Category
at br.com.restorant.dao.impl.CategoryDaoImpl.findById(CategoryDaoImpl.java:53)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy25.findById(Unknown Source)
at Execute.main(Execute.java:12)

assim a classe br.com.restorant.entity.Category é um pojo.
Eu estou usando Spring e fazendo uns testes e tá gerando o erro, mas a classe é a mesma e o java alega não poder fazer o cast.

public class Execute {

	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
		CategoryDao categoryDao = (CategoryDao)context.getBean("CategoryDao");
		System.out.println(categoryDao.findById(4));
	}

}

o erro ocorre aqui

@Override
	public Category findById(long id) {
		Query query = em.createNamedQuery("Category.findById");
		query.setParameter("id",id);
		Category category = (Category)query.getSingleResult();
		return category;
	}

o erro ocorre na hora que ele faz o cast do resultado do getSingleResult();
estou usando jpa. Se eu der um system.out, motra que o resultado tá certo, alguém já passou por e sabe resolver

Já tive esse problema quando estava usando a biblioteca com uma versão e o deploy do ear usava outra versão da mesma biblioteca.
Compilei tudo, fiz deploy usando a mesma versão e rolou…

veja se é o seu caso…

o erro é em runtime, mas é dentro do eclipse mesmo, eu to fazendo teste local, nem chego a usar um servidor de aplicação. Meu interesse é usar os recursos do Spring numa aplicação plataforma RCP da eclipse.
O jar do spring por exemplo está dentro de uma pasta lib, e seria o mesmo para compilar e executar.

Sim, é runtime mesmo…
Essa classe sua, apontada na exceção não está empacotada?

está no mesmo projeto, somente em pacotes diferentes.

Está acontecendo o mesmo erro comigo…

Estou usando Glassfish v3, e EclipseLink. Quando reinicio o Glassfish o problema para de acontecer.

Eu estou deixando o EntityManager no ApplicationScope

O erro acontece quando:

Query query = find("Users.findByLogin").setParameter("login", login);
        if (query.getResultList().size() > 0) {
            Users user = (Users) query.getResultList().get(0);
            return user;
        }else{
            return null;
        }