swing
Agosto 10, 2007, 1:34pm
#1
Pessoal, estou desenvolvendo uma aplicação Java com GWT e Hibernate 3.x.
Estou utilizando a lógica toda no banco Oracle através de Stored Procedures.
Quando faço a configuração no arquivo Nome.hbm.xml pela documentação do hibernate, dá erro:
Código hbm.xml
<class name="Nome">
<id name="id">
<generator class="increment"/>
</id>
<property name="servico" not-null="true"/>
<property name="sigla" not-null="true"/>
<sql-insert callable="true">{call Package.Salva (?, ?)}</sql-insert>
<sql-delete callable="true">{? = call Package.Exclui (?)}</sql-delete>
<sql-update callable="true">{? = call Package.Atualiza (?, ?, ?)}</sql-update>
</class>
quando tento realizar um método, por exemplo: salvar, aparece a mensagem:
org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/empresa/projeto/Nome.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:569)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
at com.empresa.HibernateHelper.(HibernateHelper.java:15)
at com.empresa.NomeManager.(ServicoManager.java:21)
at com.empresa.server.NomeImpl.getServicoManager(ServicoServiceImpl.java:28)
at com.empresa.server.NomeImpl.salvar(ServicoServiceImpl.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:348)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:222)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:174)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at com.google.gwt.dev.shell.GWTShellServlet.service(GWTShellServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from invalid mapping
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:502)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
… 44 more
Caused by: org.xml.sax.SAXParseException: The content of element type “class” must match “(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array),((join ,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,resultset*,(query|sql-query)*)”.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499)
… 45 more
Roger1
Agosto 10, 2007, 2:06pm
#2
Olá,
No arquivo de mapeamento você incluiu a declaração DTD ?
Dá uma olhada aqui e vê se ajuda.
http://www.hibernate.org/hib_docs/v3/reference/en/html/tutorial.html#tutorial-firstapp-mapping
flw,
Roger Leite
Swing,
Pq vc quer usar Hibernate com Stored Procedures, performance??
Francisco
Blz?
No link abaixo tem exemplos de mapeamento para store procedure e functions.
http://www.hibernate.org/hib_docs/reference/en/pdf/hibernate_reference.pdf
Espero que ajude.
olá pessoal!
estou com um problema sobre isso…
é o seguinte:
no banco tenho uma função, e tenho no java um método que a chama através do Hibernate.
essa função não retorna nada.
no java ela esta sendo chamada, mas não esta sendo executada pelo hibernate.
este é o método.
public void updateItensChecklist( PfjCheckList pfjCheckList ) {
Query query = getSession().createSQLQuery("SELECT cadastro.atualizar_pfj_itens_checklist(" + pfjCheckList.getId() + " )");
}
este é o meu arquivo de mapeamento.
<sql-query name="atualizar_pfj_itens_checklist" callable="true">
<return alias="update_item" class="br...." />
{ ? = call atualizar_pfj_itens_checklist(?) }
</sql-query>
então, como que eu poderia fazer para o hibernate mapear isso?!?
Att Murilo Moreira
valeu!