Genesis (Named query not known) [Resolvido]

2 respostas
fsjr

Pessoal,

Na hora de usar o getNamedQuery("nomeDaQuery") ele não acha a minha query se eu somente colocar no HBM assim;

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
    <class name="br.com.vivo.dataBeans.Usuario">
        <id
            name="code"
            column="code"
            type="java.lang.Long">
            <generator class="assigned">
            </generator>
        </id>
        <property
            name="login"
            type="java.lang.String"
            update="true"
            insert="true"
            column="login"/>
        <property
            name="senha"
            type="java.lang.String"
            update="true"
            insert="true"
            column="nome"/>
        <property
            name="nome"
            type="java.lang.String"
            update="true"
            insert="true"
            column="nome"/>
        <property
            name="isAdmin"
            type="java.lang.Boolean"
            update="true"
            insert="true"
            column="is_admin"/>
    </class>
    <query name="queryLogin">        
        <![CDATA[from Usuario u where upper(u.login) = :login]]>
    </query>
    </hibernate-mapping>

Minha chamada:

...
Query query = getSession().getNamedQuery("queryLogin");
...

Obs.: Ja tentei assim tb

...
Query query = getSession().getNamedQuery("br.com.vivo.dataBeans.Usuario.queryLogin");
...

Mas se eu adicionar na classe Usuario o seguinte:

...
@hibernate.query name="queryLogin"
 query="from Usuario u where upper(u.login) = :login"
...

Ai ele Funciona. Não deveria funcionar adicionando somente no HBM ? Onde estou errando ?
Nao gostaria de ter que adicionar na Classe também, é preciso ?

Segue exceção para constar no Topico:

net.sf.hibernate.MappingException: Named query not known: queryLogin
        at net.sf.hibernate.impl.SessionImpl.getNamedQuery(SessionImpl.java:1775)
        at br.com.vivo.business.LoginBusiness.aw$original$_AW_$doLogin$_AW_$br_com_vivo_business_LoginBusiness(LoginBusiness.java:14)
        at br.com.vivo.business.LoginBusiness_1_27145335__1491665695___AW_JoinPoint.proceed(Unknown Source)
        at net.java.dev.genesis.aspect.LocalCommandExecutionAspect.commandExecution(LocalCommandExecutionAspect.java:91)
        at br.com.vivo.business.LoginBusiness_1_27145335__1491665695___AW_JoinPoint.proceed(Unknown Source)
        at br.com.vivo.business.LoginBusiness_1_27145335__1491665695___AW_JoinPoint.invoke(Unknown Source)
        at br.com.vivo.business.LoginBusiness.doLogin(LoginBusiness.java)
        at br.com.vivo.form.UsuarioForm.doLogin(UsuarioForm.java:89)
        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 net.java.dev.genesis.reflection.ReflectionInvoker.invoke(ReflectionInvoker.java:45)
        at net.java.dev.genesis.ui.metadata.MethodMetadata.invoke(MethodMetadata.java:70)
        at net.java.dev.genesis.ui.controller.DefaultFormController.invokeAction(DefaultFormController.java:588)
        at net.java.dev.genesis.ui.controller.DefaultFormController.invokeActionWithReset(DefaultFormController.java:798)
        at net.java.dev.genesis.ui.controller.DefaultFormController.invokeAction(DefaultFormController.java:787)
        at net.java.dev.genesis.ui.binding.AbstractBinder.invokeAction(AbstractBinder.java:587)
        at net.java.dev.genesis.ui.binding.AbstractBinder.invokeFormAction(AbstractBinder.java:781)
        at net.java.dev.genesis.ui.swing.components.AbstractComponentBinder$1.actionPerformed(AbstractComponentBinder.java:339)
        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:3265)
        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)

Obrigado

2 Respostas

hmichel

Olá,
você deve apenas anotas as suas classes, já que o build do genesis utiliza o xdoclet como ferramenta de geração dos mapeamentos do hibernate, ou seja, os seus HBMs são sempre regerados a cada build. Isso significa que você não deve alterar seus HBMs, pois este serão sempre regerados.

Att.

fsjr

Sabe que fui me dar conta hoje de manha, queria me matar hehehehehe mas blz … cara valeu pela sua resposta.

Abracao

Criado 27 de fevereiro de 2009
Ultima resposta 3 de mar. de 2009
Respostas 2
Participantes 2