Beginner |
 |
Joined: Thu May 05, 2005 11:12 pm Posts: 26
|
I want to do a simple count query to make sure I am not adding a new object with a duplicate name. So before my insert ot update I want to run a simple count(*) type query to see what's out there.
However when I run this, I get Hibernate complaining about the mapping. I am using this via a SpringFrameWork session. Why isn't this working...?
Thanks
Andrew
Hibernate version: 3
Mapping documents:
<sql-query name="findDuplicates">
<return-scalar column="nameCount" type="integer"/>
SELECT COUNT(RC.NAME) as nameCount from RESOURCE_CATEGORY RC where RC.NAME = :name
</sql-query>
Code between sessionFactory.openSession() and session.close():
In a SpringFramework transaction:
Integer count = (Integer) getHibernateTemplate().execute( new HibernateCallback()
{
public Object doInHibernate( Session session ) throws HibernateException
{
return (Integer) getSession().getNamedQuery( "findDuplicates" ).setParameter( "name", name ).uniqueResult();
}
} );
return count.intValue();
Full stack trace of any exception that occurs:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.MappingException: invalid mapping
org.hibernate.MappingException: invalid mapping
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:399)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:608)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:962)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:354)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:271)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:312)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:134)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:230)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:156)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:48)
at com.ilign.ppm.common.BaseStrutsTestCase.setUp(BaseStrutsTestCase.java:90)
at com.ilign.ppm.action.ResourceCategoryActionTest.setUp(ResourceCategoryActionTest.java:61)
at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:31)
Caused by: org.xml.sax.SAXParseException: Element type "return-scalar" must be declared.
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.handleStartElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(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:465)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:398)
... 26 more
Name and version of the database you are using:
Firebird 1.5
The generated SQL (show_sql=true):
Doesn't get that far
Debug level Hibernate log excerpt:
|
|