Problema criação de query JPA

2 respostas
G

Pessoal,

Estou criando uma aplicação utilizando IDE NetBeans 5.5.1, TopLink, MS Sql Server com driver JTDS.

Criei as minhas Entitys e o Bean pelo NetBeans (tendo que ja possuo a comunicação com o banco funcionando). Os metodos gerados na criação do bean funcionan normalmente creat(), find(), findAll(), …, porém quando eu crio um metodo diferente destes (que implemente uma query) ele da o seguinte erro:

Caused by: org.omg.CORBA.BAD_OPERATION: ----------BEGIN server-side stack trace----------

org.omg.CORBA.BAD_OPERATION:   vmcid: SUN  minor code: 232  completed: No

at com.sun.corba.ee.impl.logging.ORBUtilSystemException.methodNotFoundInTie(ORBUtilSystemException.java:699)

at com.sun.corba.ee.impl.logging.ORBUtilSystemException.methodNotFoundInTie(ORBUtilSystemException.java:723)

at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:147)

at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)

at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)

at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)

at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
----------END server-side stack trace----------  vmcid: SUN  minor code: 232  completed: No

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at com.sun.corba.ee.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:913)

at com.sun.corba.ee.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:131)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:685)

at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:472)

at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:363)

at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)

at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)

 33 more

javax.ejb.EJBException: nested exception is: java.rmi.RemoteException: CORBA BAD_OPERATION [telefone removido] No; nested exception is:

org.omg.CORBA.BAD_OPERATION: ----------BEGIN server-side stack trace----------

org.omg.CORBA.BAD_OPERATION:   vmcid: SUN  minor code: 232  completed: No

at com.sun.corba.ee.impl.logging.ORBUtilSystemException.methodNotFoundInTie(ORBUtilSystemException.java:699)

at com.sun.corba.ee.impl.logging.ORBUtilSystemException.methodNotFoundInTie(ORBUtilSystemException.java:723)

at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:147)

at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)

at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)

at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)

at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
----------END server-side stack trace----------  vmcid: SUN  minor code: 232  completed: No

at ejb.projeto.sircoi.dao.Beans._TcaUsuarioFacadeRemote_Wrapper.pesquisaTeste(ejb/projeto/sircoi/dao/Beans/_TcaUsuarioFacadeRemote_Wrapper.java)

at com.projeto.sircoi.telas.manter.usuario.TelaPesquisaUsuario.chamaOperaçãoPesquisa(TelaPesquisaUsuario.java:297)

at com.projeto.sircoi.telas.manter.usuario.TelaPesquisaUsuario.jButtonPesquisarActionPerformed(TelaPesquisaUsuario.java:279)

at com.projeto.sircoi.telas.manter.usuario.TelaPesquisaUsuario.access$000(TelaPesquisaUsuario.java:48)

at com.projeto.sircoi.telas.manter.usuario.TelaPesquisaUsuario$1.actionPerformed(TelaPesquisaUsuario.java:139)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6038)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)

at java.awt.Component.processEvent(Component.java:5803)

at java.awt.Container.processEvent(Container.java:2058)

at java.awt.Component.dispatchEventImpl(Component.java:4410)

at java.awt.Container.dispatchEventImpl(Container.java:2116)

at java.awt.Component.dispatchEvent(Component.java:4240)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)

at java.awt.Container.dispatchEventImpl(Container.java:2102)

at java.awt.Window.dispatchEventImpl(Window.java:2429)

at java.awt.Component.dispatchEvent(Component.java:4240)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Nao consigo resolver isso de maneira nenhuma.

o App Serve é o a sum app server 9.1 e retorna o seguinte erro:

"IOP01210246: (BAD_OPERATION) Bad operation from _invoke: pesquisaTeste"

org.omg.CORBA.BAD_OPERATION:   vmcid: SUN  minor code: 246  completed: No

at com.sun.corba.ee.impl.logging.ORBUtilSystemException.badOperationFromInvoke(ORBUtilSystemException.java:1096)

at com.sun.corba.ee.impl.logging.ORBUtilSystemException.badOperationFromInvoke(ORBUtilSystemException.java:1115)

at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:693)

at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)

at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)

at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)

at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)

Caused by: org.omg.CORBA.BAD_OPERATION:   vmcid: SUN  minor code: 232  completed: No

at com.sun.corba.ee.impl.logging.ORBUtilSystemException.methodNotFoundInTie(ORBUtilSystemException.java:699)

at com.sun.corba.ee.impl.logging.ORBUtilSystemException.methodNotFoundInTie(ORBUtilSystemException.java:723)

at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:147)

at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)

 9 more

Conto com a ajuda de vocês.

2 Respostas

P

tou com o mesmo problema.

alguém consegue dar uma ajuda?

obrigado

S

Eu estou usando mysql mas acho que não tem muita diferença vou te dar um exemplo de um query criada “na mão” e meu método

@NamedQueries({
    @NamedQuery(name = "Grupos.findByGrupo", query = "SELECT g FROM Grupos g WHERE g.grupo = :grupo"), 
    @NamedQuery(name = "Grupos.findByObs", query = "SELECT g FROM Grupos g WHERE g.obs = :obs"), 
    @NamedQuery(name = "Grupos.findByNome", query = "SELECT g FROM Grupos g WHERE g.nome = :nome"),
     @NamedQuery(name = "Grupos.findAll", query = "SELECT g FROM Grupos g")})

// método 
public List<Grupos> findAll() {
        return super.findAll("Grupos.findAll");
    }

a query “Grupos.findAll” foi criada na mão.

meus downs
BaseDao

public List<T> findAll(String sql) { return manager.createNamedQuery(sql).getResultList(); }

Classe Service.java

package br.java.wbrasil.model.dao;

import javax.persistence.EntityManager;
import javax.persistence.Persistence;
import javax.persistence.PersistenceUnit;

/**
 *
 * @author Fabiano Santana
 */
class Service {

    @PersistenceUnit(unitName = "wbrasilPU")
    protected EntityManager manager;

    public Service() {
        if (manager == null || !manager.isOpen()) {
            manager = (EntityManager) Persistence.createEntityManagerFactory("wbrasilPU").createEntityManager();
        }
    }
}

Como vc pode notar meus Daowns são genéricos
Espero que possa te ajudar

Criado 11 de fevereiro de 2008
Ultima resposta 9 de abr. de 2008
Respostas 2
Participantes 3