Oliveira.caio 27 de jul. de 2011
Vai ai um exemplo de listagem.
CriteriaBuilder criteriaBuilder = entityManager .getCriteriaBuilder () ;
CriteriaQuery < T > query = criteriaBuilder .createQuery ( objKlass ) ;
query .select (
query .from ( objKlass )
) ;
return entityManager .createQuery ( query ) .getResultList () ;
objKlass = NomeClasse.class
brunorota 27 de jul. de 2011
opa Oliveira
Esta dando erro, porém creio eu que não seja do JPA em si
O meu código para listar eu criei uma NamedQuery que listava todos.
public List & lt ;Modulo> findAll(){
return em .createNamedQuery ( "Modulo.findAll" , Modulo .class ) .getResultList () ;
}
E eu chamo esse método no meu ManagedBean
@PostConstruct
public void init (){
//Carrega a tabela com os dados do banco
modulos = new ArrayList & lt ; Modulo & gt ;();
modulos = moduloBS . findAll ();
//Cria um novo objeto pro formulário
modulo = new Modulo ();
}
Funciona direitinho
Porém quando eu substituo esse método de listagem pelo Genérico abaixo
public List & lt ;ENTITY> findAll(){
CriteriaBuilder criteriaBuilder = em .getCriteriaBuilder () ;
CriteriaQuery & lt ;ENTITY> query = criteriaBuilder.createQuery(getEntityClass());
query .select (
query .from ( getEntityClass ())
) ;
return em .createQuery ( query ) .getResultList () ;
}
Acontece o seguinte erro
19 : 46 : 28 , 989 ERROR [ org . jboss . ejb3 . tx2 . impl . CMTTxInterceptor ] javax . ejb . EJBTransactionRolledbackException : java . lang . Class cannot be cast to java . lang . reflect . ParameterizedType
19 : 46 : 29 , 014 SEVERE [ javax . enterprise . resource . webcontainer . jsf . application ] Error Rendering View [ / pages / cadastroModulo . xhtml ] : com . sun . faces . mgbean . ManagedBeanCreationException : An error occurred performing resource injection on managed bean moduloMB
at com . sun . faces . mgbean . BeanBuilder . invokePostConstruct ( BeanBuilder . java : 225 ) [ : 2.0.3 - ]
at com . sun . faces . mgbean . BeanBuilder . build ( BeanBuilder . java : 101 ) [ : 2.0.3 - ]
at com . sun . faces . mgbean . BeanManager . createAndPush ( BeanManager . java : 405 ) [ : 2.0.3 - ]
( JIoEndpoint . java : 951 ) [ : 6.0.0 . Final ]
at java . lang . Thread . run ( Thread . java : 662 ) [ : 1.6.0 _26 ]
Caused by : com . sun . faces . spi . InjectionProviderException : unable to process invokePostConstruct .
at org . jboss . web . jsf . integration . injection . JBossDelegatingInjectionProvider . invokePostConstruct ( JBossDelegatingInjectionProvider . java : 94 ) [ : 1.0.3 ]
at com . sun . faces . mgbean . BeanBuilder . invokePostConstruct ( BeanBuilder . java : 219 ) [ : 2.0.3 - ]
... 59 more
Caused by : java . lang . reflect . InvocationTargetException
at sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method ) [ : 1.6.0 _26 ]
at sun . reflect . NativeMethodAccessorImpl . invoke ( NativeMethodAccessorImpl . java : 39 ) [ : 1.6.0 _26 ]
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( DelegatingMethodAccessorImpl . java : 25 ) [ : 1.6.0 _26 ]
at java . lang . reflect . Method . invoke ( Method . java : 597 ) [ : 1.6.0 _26 ]
at org . jboss . web . tomcat . service . TomcatInjectionContainer . processesLifecycleCallbackMetaData ( TomcatInjectionContainer . java : 560 ) [ : 6.0.0 . Final ]
at org . jboss . web . tomcat . service . TomcatInjectionContainer . postConstruct ( TomcatInjectionContainer . java : 333 ) [ : 6.0.0 . Final ]
at org . jboss . web . jsf . integration . injection . JBossDelegatingInjectionProvider . invokePostConstruct ( JBossDelegatingInjectionProvider . java : 90 ) [ : 1.0.3 ]
... 60 more
Caused by : javax . ejb . EJBTransactionRolledbackException : java . lang . Class cannot be cast to java . lang . reflect . ParameterizedType
at org . jboss . ejb3 . tx2 . impl . CMTTxInterceptor . handleInCallerTx ( CMTTxInterceptor . java : 148 ) [ : 0.0.1 ]
at org . jboss . ejb3 . tx2 . impl . CMTTxInterceptor . invokeInCallerTx ( CMTTxInterceptor . java : 227 ) [ : 0.0.1 ]
at org . jboss . ejb3 . proxy . javassist . JavassistInvocationHandlerAdapter . invoke ( JavassistInvocationHandlerAdapter . java : 71 ) [ : 1.0.0 - alpha -1 ]
at br . com . rotatask . businessservice . ModuloBS_$$_javassist_51 . findAll ( ModuloBS_$$_javassist_51 . java )
at br . com . rotatask . managedbeans . ModuloMB . init ( ModuloMB . java : 53 ) [ : ]
... 67 more
Caused by : java . lang . ClassCastException : java . lang . Class cannot be cast to java . lang . reflect . ParameterizedType
at br . com . rotatask . dao . DAO . getEntityClass ( DAO . java : 62 ) [ : ]
at br . com . rotatask . dao . DAO . findAll ( DAO . java : 44 ) [ : ]
at sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method ) [ : 1.6.0 _26 ]
at sun . reflect . NativeMethodAccessorImpl . invoke ( NativeMethodAccessorImpl . java : 39 ) [ : 1.6.0 _26 ]
at org . jboss . aop . joinpoint . MethodInvocation . invokeNext ( MethodInvocation . java : 102 ) [ jboss - aop . jar : 2.2.1 . GA ]
at org . jboss . ejb3 . core . context . SessionInvocationContextAdapter . proceed ( SessionInvocationContextAdapter . java : 95 ) [ : 1.7.17 ]
at org . jboss . ejb3 . tx2 . impl . CMTTxInterceptor . invokeInCallerTx ( CMTTxInterceptor . java : 223 ) [ : 0.0.1 ]
... 176 more
19 : 46 : 29 , 065 ERROR [ org . apache . catalina . core . ContainerBase .[ jboss . web ].[ localhost ].[ / rotataskWEB ].[ Faces Servlet ]] Servlet . service () for servlet Faces Servlet threw exception : java . lang . ClassCastException : java . lang . Class cannot be cast to java . lang . reflect . ParameterizedType
at br . com . rotatask . dao . DAO . getEntityClass ( DAO . java : 62 ) [ : ]
at br . com . rotatask . dao . DAO . findAll ( DAO . java : 44 ) [ : ]
at sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method ) [ : 1.6.0 _26 ]
at org . apache . coyote . http11 . Http11Processor . process ( Http11Processor . java : 877 ) [ : 6.0.0 . Final ]
at org . apache . coyote . http11 . Http11Protocol$Http11ConnectionHandler . process ( Http11Protocol . java : 654 ) [ : 6.0.0 . Final ]
at org . apache . tomcat . util . net . JIoEndpoint$Worker . run ( JIoEndpoint . java : 951 ) [ : 6.0.0 . Final ]
at java . lang . Thread . run ( Thread . java : 662 ) [ : 1.6.0 _26 ]
Você sabe o porque isso acontece?
Att.
Oliveira.caio 28 de out. de 2011
Seguinte.
java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
at br.com.rotatask.dao.DAO.getEntityClass(DAO.java:62) [:]
Esta dando erro nesse getEntityClass que voce fez ai.
Tira esse getEntityClass e coloca na mao uma classe do seu sistemas.
Voce vai ver que vai funcionar.
Posta esse getEntityClass ai que vermos.