danillonc 3 de dez. de 2014
Amigo,
Isso acontece pelo simples fato de você não ter uma classe(entity) mapeada para o banco, você realiza a query e quer que ela seja de uma coleção de um VO/TO etc…
Mas a conversão é simples.
@SuppressWarnings ( "unchecked" )
public Collection < Objeto1TO > consultarLista ( String usuario ) {
Collection < Objeto1TO > listaResultado = new ArrayList < Objeto1TO > ();
List < Objeto1TO > listaMontadaTO = new ArrayList < Objeto1TO > ();
Objeto1TO objTO ;
StringBuilder sqlbuilder = new StringBuilder ();
sqlBuilder . append ( "SELECT mi.coluna1, mi.coluna2 FROM Objeto1TO mi, Objeto2TO mp " );
sqlBuilder . append ( "where mp.idColuna = mi.idColuna " );
sqlBuilder . append ( " and mp.valor = :valor " );
sqlBuilder . append ( "order by mi.idColuna" );
try {
Query query = em . createQuery ( sqlBuilder . toString ());
query . setParameter ( "valor" , "1234" );
listaResultado = query . getResultList ();
for ( Object obj : listaResultado ) {
objTO = new Objeto1TO ();
objTO . setCampo ( obj )
}
listaMontadaTO . add ( objTO );
} catch ( Exception e ) {
logger . error ( "Erro ao consultar " + e );
e . printStackTrace ();
}
return listaMontadaTO ;
}
Ou se preferir pode usar um código mais antigo fazendo o uso do iterator.
Query query = emanager .createNativeQuery ( sqlBuilder .toString ()) ;
query .setParameter ( "anoEdicao" , anoEdicao ) ;
Iterator iterator = query .getResultList () .iterator () ;
while ( iterator .hasNext ()) {
Object [] obj = ( Object []) iterator .next () ;
relSintVO = new RelatorioSinteticoVO () ;
relSintVO .setNomeCategoria ( obj [0 ].toString ()) ;
relSintVO .setSiglaUF ( obj [1 ].toString ()) ;
relSintVO .setTotPratica (( BigDecimal ) obj [2 ]) ;
listaRet .add ( relSintVO ) ;
}
robsonsan 3 de dez. de 2014
danillonc,
fiz um teste com os dois exemplos mas não seu certo irei postar as duas formas aqui com o método com os nomes corretos,
Exemplo 1
@ SuppressWarnings ( "rawtypes" )
public Collection < MenuItemTO > montarMenu ( String usuario ) {
Collection < MenuItemTO > listaMenuItem = new ArrayList < MenuItemTO >();
MenuItemTO menuItemTO = new MenuItemTO ();
try {
Query query = em . createQuery ( "query" );
Iterator iterator = query . getResultList (). iterator ();
while ( iterator . hasNext ()){
Object [] obj = ( Object []) iterator . next ();
menuItemTO = new MenuItemTO ();
menuItemTO . setIdMenuItem (( Integer ) obj [ 0 ]);
menuItemTO . setDescMenuItem ( obj [ 1 ]. toString ());
listaMenuItem . add ( menuItemTO );
}
} catch ( Exception e ) {
logger . error ( "Erro ao consultar " + e );
e . printStackTrace ();
}
return listaMenuItem ;
}
Erro nesta linha
Object [] obj = ( Object []) iterator .next () ;
Erro
java . lang . ClassCastException : br . com . getnet . retaguarda . menu . to . MenuItemTO cannot be cast to [ Ljava . lang . Object ;
at br . com . getnet . retaguarda . menu . dao . MenuImplDAO . montarMenu ( MenuImplDAO . java : 66 )
at br . com . getnet . retaguarda . menu . dao . MenuImplDAO_4jn8kg_MenuDAOImpl . __WL_invoke ( Unknown Source )
at weblogic . ejb . container . internal . SessionLocalMethodInvoker . invoke ( SessionLocalMethodInvoker . java : 33 )
at br . com . getnet . retaguarda . menu . dao . MenuImplDAO_4jn8kg_MenuDAOImpl . montarMenu ( Unknown Source )
at br . com . getnet . retaguarda . menu . delegate . MenuDelegate . getMenuItems ( MenuDelegate . java : 457 )
at sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method )
at sun . reflect . NativeMethodAccessorImpl . invoke ( NativeMethodAccessorImpl . java : 57 )
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( DelegatingMethodAccessorImpl . java : 43 )
at java . lang . reflect . Method . invoke ( Method . java : 606 )
at javax . el . BeanELResolver . invokeMethod ( BeanELResolver . java : 780 )
at javax . el . BeanELResolver . invoke ( BeanELResolver . java : 529 )
at javax . el . CompositeELResolver . invoke ( CompositeELResolver . java : 257 )
at com . sun . el . parser . AstValue . getValue ( AstValue . java : 134 )
at com . sun . el . parser . AstValue . getValue ( AstValue . java : 183 )
at com . sun . el . ValueExpressionImpl . getValue ( ValueExpressionImpl . java : 224 )
at com . sun . facelets . el . TagValueExpression . getValue ( TagValueExpression . java : 71 )
at com . sun . facelets . tag . jstl . core . ForEachHandler . apply ( ForEachHandler . java : 121 )
at com . sun . facelets . tag . jsf . ComponentHandler . applyNextHandler ( ComponentHandler . java : 314 )
at com . sun . facelets . tag . jsf . ComponentHandler . apply ( ComponentHandler . java : 169 )
at com . sun . facelets . tag . CompositeFaceletHandler . apply ( CompositeFaceletHandler . java : 47 )
at com . sun . facelets . tag . jsf . ComponentHandler . applyNextHandler ( ComponentHandler . java : 314 )
at com . sun . facelets . tag . jsf . ComponentHandler . apply ( ComponentHandler . java : 169 )
at com . sun . facelets . tag . CompositeFaceletHandler . apply ( CompositeFaceletHandler . java : 47 )
at com . sun . facelets . compiler . NamespaceHandler . apply ( NamespaceHandler . java : 49 )
at com . sun . facelets . tag . CompositeFaceletHandler . apply ( CompositeFaceletHandler . java : 47 )
at com . sun . facelets . compiler . EncodingHandler . apply ( EncodingHandler . java : 25 )
at com . sun . facelets . impl . DefaultFacelet . apply ( DefaultFacelet . java : 95 )
at com . sun . facelets . FaceletViewHandler . buildView ( FaceletViewHandler . java : 524 )
at com . sun . facelets . FaceletViewHandler . renderView ( FaceletViewHandler . java : 567 )
at org . ajax4jsf . application . ViewHandlerWrapper . renderView ( ViewHandlerWrapper . java : 100 )
at org . ajax4jsf . application . AjaxViewHandler . renderView ( AjaxViewHandler . java : 176 )
at com . sun . faces . lifecycle . RenderResponsePhase . execute ( RenderResponsePhase . java : 120 )
at com . sun . faces . lifecycle . Phase . doPhase ( Phase . java : 101 )
at com . sun . faces . lifecycle . LifecycleImpl . render ( LifecycleImpl . java : 139 )
at javax . faces . webapp . FacesServlet . service ( FacesServlet . java : 594 )
at weblogic . servlet . internal . StubSecurityHelper $ ServletServiceAction . run ( StubSecurityHelper . java : 280 )
at weblogic . servlet . internal . StubSecurityHelper $ ServletServiceAction . run ( StubSecurityHelper . java : 254 )
at weblogic . servlet . internal . StubSecurityHelper . invokeServlet ( StubSecurityHelper . java : 136 )
at weblogic . servlet . internal . ServletStubImpl . execute ( ServletStubImpl . java : 346 )
at weblogic . servlet . internal . TailFilter . doFilter ( TailFilter . java : 25 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at org . ajax4jsf . webapp . BaseXMLFilter . doXmlFilter ( BaseXMLFilter . java : 206 )
at org . ajax4jsf . webapp . BaseFilter . handleRequest ( BaseFilter . java : 290 )
at org . ajax4jsf . webapp . BaseFilter . processUploadsAndHandleRequest ( BaseFilter . java : 388 )
at org . ajax4jsf . webapp . BaseFilter . doFilter ( BaseFilter . java : 515 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at br . com . getnet . retaguarda . filter . DisableUrlSessionFilter . doFilter ( DisableUrlSessionFilter . java : 93 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at oracle . security . jps . ee . http . JpsAbsFilter $ 1. run ( JpsAbsFilter . java : 137 )
at java . security . AccessController . doPrivileged ( Native Method )
at oracle . security . jps . util . JpsSubject . doAsPrivileged ( JpsSubject . java : 315 )
at oracle . security . jps . ee . util . JpsPlatformUtil . runJaasMode ( JpsPlatformUtil . java : 460 )
at oracle . security . jps . ee . http . JpsAbsFilter . runJaasMode ( JpsAbsFilter . java : 120 )
at oracle . security . jps . ee . http . JpsAbsFilter . doFilter ( JpsAbsFilter . java : 217 )
at oracle . security . jps . ee . http . JpsFilter . doFilter ( JpsFilter . java : 81 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at oracle . dms . servlet . DMSServletFilter . doFilter ( DMSServletFilter . java : 220 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at weblogic . servlet . internal . RequestEventsFilter . doFilter ( RequestEventsFilter . java : 27 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at weblogic . servlet . internal . WebAppServletContext $ ServletInvocationAction . wrapRun ( WebAppServletContext . java : 3436 )
at weblogic . servlet . internal . WebAppServletContext $ ServletInvocationAction . run ( WebAppServletContext . java : 3402 )
at weblogic . security . acl . internal . AuthenticatedSubject . doAs ( AuthenticatedSubject . java : 321 )
at weblogic . security . service . SecurityManager . runAs ( SecurityManager . java : 120 )
at weblogic . servlet . provider . WlsSubjectHandle . run ( WlsSubjectHandle . java : 57 )
at weblogic . servlet . internal . WebAppServletContext . doSecuredExecute ( WebAppServletContext . java : 2285 )
at weblogic . servlet . internal . WebAppServletContext . securedExecute ( WebAppServletContext . java : 2201 )
at weblogic . servlet . internal . WebAppServletContext . execute ( WebAppServletContext . java : 2179 )
at weblogic . servlet . internal . ServletRequestImpl . run ( ServletRequestImpl . java : 1572 )
at weblogic . servlet . provider . ContainerSupportProviderImpl $ WlsRequestExecutor . run ( ContainerSupportProviderImpl . java : 255 )
at weblogic . work . ExecuteThread . execute ( ExecuteThread . java : 311 )
at weblogic . work . ExecuteThread . run ( ExecuteThread . java : 263 )
Exemplo 2
Query
@SuppressWarnings ( "unchecked" )
public Collection < MenuItemTO > montarMenu ( String usuario ) {
Collection < MenuItemTO > listaMenuItem = new ArrayList < MenuItemTO > ();
MenuItemTO menuItemTO = new MenuItemTO ();
List < MenuItemTO > listaMontadaTO = new ArrayList < MenuItemTO > ();
try {
Query query = em . createQuery ( "query" );
listaMenuItem = query . getResultList ();
for ( Object obj : listaMenuItem ) {
menuItemTO = new MenuItemTO ();
menuItemTO . setIdMenuItem (( Integer ) obj );
menuItemTO . setDescMenuItem (( String ) obj );
}
listaMontadaTO . add ( menuItemTO );
} catch ( Exception e ) {
logger . error ( "Erro ao consultar Sumarizacao " + e );
e . printStackTrace ();
}
return listaMenuItem ;
}
Erro nesta linha
menuItemTO.setIdMenuItem((Integer) obj);
erro
12 : 53 : 18.979 [ [ACTIVE ] ExecuteThread : '3' for queue : 'weblogic.kernel.Default (self-tuning)' ] ERROR br . com . getnet . retaguarda . login . dao . LoginImplDAO : 74 - Erro ao consultar Sumarizacao java . lang . ClassCastException : br . com . getnet . retaguarda . menu . to . MenuItemTO cannot be cast to java . lang . Integer
java . lang . ClassCastException : br . com . getnet . retaguarda . menu . to . MenuItemTO cannot be cast to java . lang . Integer
at br . com . getnet . retaguarda . menu . dao . MenuImplDAO . montarMenu ( MenuImplDAO . java : 69 )
at br . com . getnet . retaguarda . menu . dao . MenuImplDAO_4jn8kg_MenuDAOImpl . __WL_invoke ( Unknown Source )
at weblogic . ejb . container . internal . SessionLocalMethodInvoker . invoke ( SessionLocalMethodInvoker . java : 33 )
at br . com . getnet . retaguarda . menu . dao . MenuImplDAO_4jn8kg_MenuDAOImpl . montarMenu ( Unknown Source )
at br . com . getnet . retaguarda . menu . delegate . MenuDelegate . getMenuItems ( MenuDelegate . java : 457 )
at sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method )
at sun . reflect . NativeMethodAccessorImpl . invoke ( NativeMethodAccessorImpl . java : 57 )
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( DelegatingMethodAccessorImpl . java : 43 )
at java . lang . reflect . Method . invoke ( Method . java : 606 )
at javax . el . BeanELResolver . invokeMethod ( BeanELResolver . java : 780 )
at javax . el . BeanELResolver . invoke ( BeanELResolver . java : 529 )
at javax . el . CompositeELResolver . invoke ( CompositeELResolver . java : 257 )
at com . sun . el . parser . AstValue . getValue ( AstValue . java : 134 )
at com . sun . el . parser . AstValue . getValue ( AstValue . java : 183 )
at com . sun . el . ValueExpressionImpl . getValue ( ValueExpressionImpl . java : 224 )
at com . sun . facelets . el . TagValueExpression . getValue ( TagValueExpression . java : 71 )
at com . sun . facelets . tag . jstl . core . ForEachHandler . apply ( ForEachHandler . java : 121 )
at com . sun . facelets . tag . jsf . ComponentHandler . applyNextHandler ( ComponentHandler . java : 314 )
at com . sun . facelets . tag . jsf . ComponentHandler . apply ( ComponentHandler . java : 169 )
at com . sun . facelets . tag . CompositeFaceletHandler . apply ( CompositeFaceletHandler . java : 47 )
at com . sun . facelets . tag . jsf . ComponentHandler . applyNextHandler ( ComponentHandler . java : 314 )
at com . sun . facelets . tag . jsf . ComponentHandler . apply ( ComponentHandler . java : 169 )
at com . sun . facelets . tag . CompositeFaceletHandler . apply ( CompositeFaceletHandler . java : 47 )
at com . sun . facelets . compiler . NamespaceHandler . apply ( NamespaceHandler . java : 49 )
at com . sun . facelets . tag . CompositeFaceletHandler . apply ( CompositeFaceletHandler . java : 47 )
at com . sun . facelets . compiler . EncodingHandler . apply ( EncodingHandler . java : 25 )
at com . sun . facelets . impl . DefaultFacelet . apply ( DefaultFacelet . java : 95 )
at com . sun . facelets . FaceletViewHandler . buildView ( FaceletViewHandler . java : 524 )
at com . sun . facelets . FaceletViewHandler . renderView ( FaceletViewHandler . java : 567 )
at org . ajax4jsf . application . ViewHandlerWrapper . renderView ( ViewHandlerWrapper . java : 100 )
at org . ajax4jsf . application . AjaxViewHandler . renderView ( AjaxViewHandler . java : 176 )
at com . sun . faces . lifecycle . RenderResponsePhase . execute ( RenderResponsePhase . java : 120 )
at com . sun . faces . lifecycle . Phase . doPhase ( Phase . java : 101 )
at com . sun . faces . lifecycle . LifecycleImpl . render ( LifecycleImpl . java : 139 )
at javax . faces . webapp . FacesServlet . service ( FacesServlet . java : 594 )
at weblogic . servlet . internal . StubSecurityHelper $ ServletServiceAction . run ( StubSecurityHelper . java : 280 )
at weblogic . servlet . internal . StubSecurityHelper $ ServletServiceAction . run ( StubSecurityHelper . java : 254 )
at weblogic . servlet . internal . StubSecurityHelper . invokeServlet ( StubSecurityHelper . java : 136 )
at weblogic . servlet . internal . ServletStubImpl . execute ( ServletStubImpl . java : 346 )
at weblogic . servlet . internal . TailFilter . doFilter ( TailFilter . java : 25 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at org . ajax4jsf . webapp . BaseXMLFilter . doXmlFilter ( BaseXMLFilter . java : 206 )
at org . ajax4jsf . webapp . BaseFilter . handleRequest ( BaseFilter . java : 290 )
at org . ajax4jsf . webapp . BaseFilter . processUploadsAndHandleRequest ( BaseFilter . java : 388 )
at org . ajax4jsf . webapp . BaseFilter . doFilter ( BaseFilter . java : 515 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at br . com . getnet . retaguarda . filter . DisableUrlSessionFilter . doFilter ( DisableUrlSessionFilter . java : 93 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at oracle . security . jps . ee . http . JpsAbsFilter $ 1. run ( JpsAbsFilter . java : 137 )
at java . security . AccessController . doPrivileged ( Native Method )
at oracle . security . jps . util . JpsSubject . doAsPrivileged ( JpsSubject . java : 315 )
at oracle . security . jps . ee . util . JpsPlatformUtil . runJaasMode ( JpsPlatformUtil . java : 460 )
at oracle . security . jps . ee . http . JpsAbsFilter . runJaasMode ( JpsAbsFilter . java : 120 )
at oracle . security . jps . ee . http . JpsAbsFilter . doFilter ( JpsAbsFilter . java : 217 )
at oracle . security . jps . ee . http . JpsFilter . doFilter ( JpsFilter . java : 81 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at oracle . dms . servlet . DMSServletFilter . doFilter ( DMSServletFilter . java : 220 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at weblogic . servlet . internal . RequestEventsFilter . doFilter ( RequestEventsFilter . java : 27 )
at weblogic . servlet . internal . FilterChainImpl . doFilter ( FilterChainImpl . java : 79 )
at weblogic . servlet . internal . WebAppServletContext $ ServletInvocationAction . wrapRun ( WebAppServletContext . java : 3436 )
at weblogic . servlet . internal . WebAppServletContext $ ServletInvocationAction . run ( WebAppServletContext . java : 3402 )
at weblogic . security . acl . internal . AuthenticatedSubject . doAs ( AuthenticatedSubject . java : 321 )
at weblogic . security . service . SecurityManager . runAs ( SecurityManager . java : 120 )
at weblogic . servlet . provider . WlsSubjectHandle . run ( WlsSubjectHandle . java : 57 )
at weblogic . servlet . internal . WebAppServletContext . doSecuredExecute ( WebAppServletContext . java : 2285 )
at weblogic . servlet . internal . WebAppServletContext . securedExecute ( WebAppServletContext . java : 2201 )
at weblogic . servlet . internal . WebAppServletContext . execute ( WebAppServletContext . java : 2179 )
at weblogic . servlet . internal . ServletRequestImpl . run ( ServletRequestImpl . java : 1572 )
at weblogic . servlet . provider . ContainerSupportProviderImpl $ WlsRequestExecutor . run ( ContainerSupportProviderImpl . java : 255 )
at weblogic . work . ExecuteThread . execute ( ExecuteThread . java : 311 )
at weblogic . work . ExecuteThread . run ( ExecuteThread . java : 263 )
danillonc 3 de dez. de 2014
Faça o seguinte teste, em vez de createQuery, faça um nativeQuery e veja o resultado.
robsonsan 3 de dez. de 2014
Mesmo erro usando o createNativeQuery
danillonc 3 de dez. de 2014
Tente fazer o cast para seu VO diretamente sem ser pro tipo object.
robsonsan 3 de dez. de 2014
No método alterei assim
for ( MenuItemTO item : listaMenuItem ) {
menuItemTO = new MenuItemTO () ;
menuItemTO .setIdMenuItem ( item .getIdMenuItem ()) ;
menuItemTO .setDescMenuItem ( item .getDescMenuItem ()) ;
listaMontadaTO .add ( menuItemTO ) ;
}
esta exibindo assim
[br.com.getnet.retaguarda.menu.to.MenuItemTO@d8ab5406, br.com.getnet.retaguarda.menu.to.MenuItemTO@47a3e767, br.com.getnet.retaguarda.menu.to.MenuItemTO@6ae9eea1, br.com.getnet.retaguarda.menu.to.MenuItemTO@96c9ed76, br.com.getnet.retaguarda.menu.to.MenuItemTO@bccecaac]
robsonsan 3 de dez. de 2014
danillonc,
resolvi o problema a exibição estava mostrando os objetos por eu não peguei os itens da lista que carreguei do banco,
Valeu pela ajuda
danillonc 3 de dez. de 2014
Legal cara.
O ideal seria postar a solução para os próximos que tiverem o mesmo problema puderem resolver.