Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Hibernate: Executing stored procedure using hibernate

 
sachin Misurkar
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi
I am trying to execute stored procedure using execute but it giving this Exception.

****************************************************
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.MappingException: Error reading resource: Insurance.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:447)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1381)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1353)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1335)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1302)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1230)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1216)
at com.test.SPExec.main(SPExec.java:24)
Caused by: org.hibernate.MappingException: invalid mapping
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:394)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:444)
... 7 more
Caused by: org.xml.sax.SAXParseException: Attribute "callable" must be declared for element type "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.addDTDDefaultAttrsAndValidate(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(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:334)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:393)
... 8 more
*************************************************

I am using MySQL5

My hbm mapping file-

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Aug 1, 2008 12:33:30 PM by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
<class name="com.test.Insurance" table="insurance">
<id name="iid" type="java.lang.Integer">
<column name="iid" />
<generator class="identity" />
</id>
<property name="insuranceName" type="string">
<column name="insurance_name" length="45" not-null="true" />
</property>
<property name="investedAmount" type="int">
<column name="invested_amount" not-null="true" />
</property>
<loader query-ref="sp_select" />
</class>
<sql-query name="sp_select" callable="true">
<return alias="ins" class="com.test.Insurance">
<return-property name="iid" column="iid" />
<return-property name="insuranceName" column="insurance_name" />
<return-property name="investedAmount" column="invested_amount" />
</return>
{? =call sp_select()}
</sql-query>

</hibernate-mapping>

My Stored procedure-

DELIMITER $$

DROP PROCEDURE IF EXISTS `demo`.`sp_select` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_select`()
BEGIN
update insurance set value="xxxx" where insurance_name='sachin';
END $$

DELIMITER ;



Please suggest me where i m missing...
Thanks in advance
-Sachin
 
v srinibas rao
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
just check hibernate-mapping dtd file in the hibernate jar ,do the dtd file contains the string callable ,i hope it is not there in the dtd file,plese take the lattest hibernate jar file ,then try to run,i hope this will resolve your problem
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic