Hi,
I am very new to Hibernate. I want to execute a Named Query. The query executes fine if I declare it as below: ==================================== <hibernate-mapping> <sql-query name="getWeeks"> <return-scalar column="wk_id" type="int"/> <return-scalar column="wk_name" type="string"/> select wk_id, concat(to_char(wk_date,'Mon-dd'), concat('-',to_char(wk_date+6,'Mon-dd'))) wk_name from sm_weeks where schedule_type = 'W' and (to_char(wk_date,'YYYY') = to_char(sysdate,'YYYY') or to_char(wk_date+6,'YYYY') = to_char(sysdate,'YYYY')) and (wk_date >= sysdate or wk_date+6 >= sysdate) order by wk_id </sql-query> </hibernate-mapping> =======================================
However, if I defined a Weeks with getter and setter functions as below:
public class Weeks extends DomainVo {
private int wkId; private String wkName; private String wkDate; private char schdType;
....... }
and define my mapping as below:
=============================================== <hibernate-mapping package="com.att.smstatsapp.domain"> <sql-query name="getWeeks"> <return alias="weeksData" class="com.att.smstatsapp.domain.Weeks"> <return-property name="wkId" column="wk_id" /> <return-property name="wkName" column="wk_name" /> </return> select wk_id, concat(to_char(wk_date,'Mon-dd'), concat('-',to_char(wk_date+6,'Mon-dd'))) wk_name from sm_weeks where schedule_type = 'W' and (to_char(wk_date,'YYYY') = to_char(sysdate,'YYYY') or to_char(wk_date+6,'YYYY') = to_char(sysdate,'YYYY')) and (wk_date >= sysdate or wk_date+6 >= sysdate) order by wk_id </sql-query> </hibernate-mapping> =====================================================
I get the following error:
========================================================= org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'localSessionFactory' defined in ServletContext resource [/WEB-INF/conf/smstats-db-properties-config.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Errors in named queries: getWeeks at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:593) 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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: org.hibernate.HibernateException: Errors in named queries: getWeeks at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:426) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:805) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:745) at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:134) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
===================================================
Can I not define a class for result set and use it with Named Query? Should my class objects always be tied to tables??
Thank you for your time.
Regards, JNK
|