Can you give me an example??
Thanks much!

mraible wrote:
> 
> You should not use your own HibernateUtil class. You should use the
> "sessionFactory" bean that's already configured and use it (or a
> HibernateTemplate) to get your session.
> 
> Matt
> 
> On Sun, May 3, 2009 at 7:58 PM, Kenny Ha <vifaxoc...@yahoo.com> wrote:
> 
>>
>> Hi all,
>>
>> I posted this problem on AppFuse-Dev, but I haven't found solution yet.
>> All I want is to excute SQL query from an XML file by using Hibernate
>> (Hibernate Named SQL query)
>>
>> I create Maven with Struts 2 framework by running commands :
>>
>> _ mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes
>> -DarchetypeArtifactId=appfuse-basic-struts
>> -DremoteRepositories=http://static.appfuse.org/releases
>> -DarchetypeVersion=2.0.2<http://static.appfuse.org/releases%0A-DarchetypeVersion=2.0.2>-DgroupId=com.mycompany.app
>> -DartifactId=myproject
>>
>> _ mvn eclipse:eclipse
>>
>> _ mvn appfuse:full-source
>>
>> _ mvn jetty:run
>>
>> Everything is OK and run web application successful
>> (http://localhost:8080
>> )
>>
>> After that, I create a new file HibernateUtil.java in
>> src/main/java/com/mycompany/app/webapp
>>
>> package com.mycompany.app.webapp.util;
>>
>> import java.sql.Statement;
>>
>> import org.hibernate.Session;
>> import org.hibernate.SessionFactory;
>> import org.hibernate.cfg.Configuration;
>>
>> public class HibernateUtil {
>>  Session session;
>>  Statement st;
>>  Configuration config;
>>
>>  public HibernateUtil(){
>>    config = new Configuration().configure();
>>
>>
>>    SessionFactory sessionFactory = config.buildSessionFactory();
>>    session = sessionFactory.openSession();
>>  }
>>
>>  public Configuration getConfiguration(){
>>    return config;
>>  }
>>
>>  public Session getSession(){
>>    return session;
>>  }
>> }
>>
>> Then,I continue creating a new file User.hbm.xml in src/main/resources
>>
>> <?xml version='1.0' encoding='utf-8'?>
>> <!DOCTYPE hibernate-mapping
>>   PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
>>   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd";>
>>
>> <hibernate-mapping>
>>   <sql-query name="User.SqlQuery">
>>    <![CDATA[
>>                        delete from app_user where id = -2
>>                ]]>
>>        </sql-query>
>> </hibernate-mapping>
>>
>> And I add some lines in src/main/resources/hibernate.cfg.xml
>>
>> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate
>> Configuration DTD 3.0//EN"
>>    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd";>
>>
>> <hibernate-configuration>
>>    <session-factory>
>>        <mapping class="com.mycompany.app.model.User" />
>>        <mapping class="com.mycompany.app.model.Role"/>
>>
>>     <!-- Mapping files -->
>>     <mapping resource="User.hbm.xml"/>
>>
>>    </session-factory>
>> </hibernate-configuration>
>>
>> In src/main/java/com/mycompany/app/webapp/action/UserAction.java
>> ,function
>> delete :
>>
>>   /**
>>     * Delete the user passed in.
>>     * @return success
>>     */
>>    public String delete() {
>>        //userManager.removeUser(user.getId().toString());
>>        Session session = hibernateUtil.getSession();
>>        Query query = session.getNamedQuery("User.SqlQuery");
>>        query.executeUpdate();
>>        List<String> args = new ArrayList<String>();
>>        args.add(user.getFullName());
>>        saveMessage(getText("user.deleted", args));
>>
>>        return SUCCESS;
>>    }
>>
>> I run web application again, login to access admin menu, and chose
>> Administration ---> View Users errors occur :
>>
>> javax.servlet.ServletException: Unable to instantiate Action, userAction,
>> defined for 'users' in namespace '/admin'Error creating bean with name
>> 'userAction' defined in ServletContext resource
>> [/WEB-INF/applicationContext-struts.xml]: Instantiation of bean failed;
>> nested exception is org.springframework.beans.BeanInstantiationException:
>> Could not instantiate bean class
>> [com.mycompany.app.webapp.action.UserAction]: Constructor threw
>> exception;
>> nested exception is org.hibernate.MappingException: An
>> AnnotationConfiguration instance is required to use  - action -
>> file:/E:/Green%20Sun/Projects/demo_2/target/classes/struts.xml:131:63
>>        at
>> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
>>        at
>>
>> org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
>>        at
>>
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>        at
>>
>> com.mycompany.app.webapp.filter.StaticFilter.doFilterInternal(StaticFilter.java:106)
>>        at
>>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>        at
>>
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>        at
>>
>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
>>        at
>>
>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
>>        at
>>
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>        at
>>
>> org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
>>        at
>>
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>        at
>>
>> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
>>        at
>> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
>>        at
>>
>> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
>>        at
>>
>> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
>>        at
>>
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>        at
>>
>> org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
>>        at
>>
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>        at
>>
>> net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:75)
>>        at
>> net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:92)
>>        at
>>
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>        at
>>
>> com.mycompany.app.webapp.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:74)
>>        at
>>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>        at
>>
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>        at
>>
>> com.opensymphony.clickstream.ClickstreamFilter.doFilter(ClickstreamFilter.java:42)
>>        at
>>
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:359)
>>        at
>>
>> org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
>>        at
>>
>> org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>>        at
>>
>> org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
>>        at
>>
>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>>        at
>>
>> org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
>>        at
>>
>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>>        at
>>
>> org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
>>        at
>>
>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>>        at
>>
>> org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
>>        at
>>
>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>>        at
>>
>> org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:172)
>>        at
>>
>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>>        at
>>
>> org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:268)
>>        at
>>
>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>>        at
>>
>> org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:87)
>>        at
>>
>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>>        at
>>
>> org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:61)
>>        at
>>
>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>>        at
>>
>> org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
>>        at
>>
>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>>        at
>>
>> org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:174)
>>        at
>>
>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
>>        at
>>
>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
>>        at
>>
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>        at
>>
>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
>>        at
>>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>        at
>>
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>        at
>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
>>        at
>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>        at
>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>>        at
>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
>>        at
>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>>        at
>>
>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
>>        at
>>
>> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>>        at
>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>>        at org.mortbay.jetty.Server.handle(Server.java:324)
>>        at
>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
>>        at
>>
>> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)
>>        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
>>        at
>> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>>        at
>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
>>        at
>>
>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
>>        at
>>
>> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
>> Caused by: Unable to instantiate Action, userAction,  defined for 'users'
>> in
>> namespace '/admin'Error creating bean with name 'userAction' defined in
>> ServletContext resource [/WEB-INF/applicationContext-struts.xml]:
>> Instantiation of bean failed; nested exception is
>> org.springframework.beans.BeanInstantiationException: Could not
>> instantiate
>> bean class [com.mycompany.app.webapp.action.UserAction]: Constructor
>> threw
>> exception; nested exception is org.hibernate.MappingException: An
>> AnnotationConfiguration instance is required to use  - action -
>> file:/E:/Green%20Sun/Projects/demo_2/target/classes/struts.xml:131:63
>>        at
>>
>> com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:294)
>>        at
>>
>> com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:365)
>>        at
>>
>> com.opensymphony.xwork2.DefaultActionInvocation.access$000(DefaultActionInvocation.java:38)
>>        at
>>
>> com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:83)
>>        at
>>
>> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>>        at
>>
>> com.opensymphony.xwork2.DefaultActionInvocation.(DefaultActionInvocation.java:74)
>>        at
>>
>> com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:189)
>>        at
>>
>> org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
>>        at
>> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
>>        ... 79 more
>> Caused by: org.springframework.beans.factory.BeanCreationException: Error
>> creating bean with name 'userAction' defined in ServletContext resource
>> [/WEB-INF/applicationContext-struts.xml]: Instantiation of bean failed;
>> nested exception is org.springframework.beans.BeanInstantiationException:
>> Could not instantiate bean class
>> [com.mycompany.app.webapp.action.UserAction]: Constructor threw
>> exception;
>> nested exception is org.hibernate.MappingException: An
>> AnnotationConfiguration instance is required to use
>>        at
>>
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:881)
>>        at
>>
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:824)
>>        at
>>
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
>>        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.doGetBean(AbstractBeanFactory.java:283)
>>        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.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:881)
>>        at
>>
>> com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:125)
>>        at
>> com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:143)
>>        at
>> com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:113)
>>        at
>>
>> com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:275)
>>        ... 87 more
>> Caused by: org.springframework.beans.BeanInstantiationException: Could
>> not
>> instantiate bean class [com.mycompany.app.webapp.action.UserAction]:
>> Constructor threw exception; nested exception is
>> org.hibernate.MappingException: An AnnotationConfiguration instance is
>> required to use
>>        at
>> org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:111)
>>        at
>>
>> org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
>>        at
>>
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:875)
>>        ... 100 more
>> Caused by: org.hibernate.MappingException: An AnnotationConfiguration
>> instance is required to use
>>        at
>>
>> org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1606)
>>        at
>>
>> org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1561)
>>        at
>> org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1540)
>>        at
>> org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1514)
>>        at
>> org.hibernate.cfg.Configuration.configure(Configuration.java:1434)
>>        at
>> org.hibernate.cfg.Configuration.configure(Configuration.java:1420)
>>        at
>> com.mycompany.app.webapp.util.HibernateUtil.(HibernateUtil.java:15)
>>        at com.mycompany.app.webapp.action.UserAction.(UserAction.java:37)
>>        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> Method)
>>        at
>>
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>>        at
>>
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>>        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>>        at
>> org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:96)
>>        ... 102 more
>>
>> I debug source ,it throw an exeption at BeanUtils.class :
>>
>>        /**
>>         * Convenience method to instantiate a class using the given
>> constructor.
>>         * As this method doesn't try to load classes by name, it should
>> avoid
>>         * class-loading issues.
>>         * <p>Note that this method tries to set the constructor
>> accessible
>>         * if given a non-accessible (that is, non-public) constructor.
>>         * @param ctor the constructor to instantiate
>>         * @param args the constructor arguments to apply
>>         * @return the new instance
>>         * @throws BeanInstantiationException if the bean cannot be
>> instantiated
>>         */
>>        public static Object instantiateClass(Constructor ctor, Object[]
>> args) throws BeanInstantiationException {
>>                Assert.notNull(ctor, "Constructor must not be null");
>>                try {
>>                        ReflectionUtils.makeAccessible(ctor);
>>                        return ctor.newInstance(args);
>>                }
>>                [...]
>>                catch (InvocationTargetException ex) {
>>                        throw new
>> BeanInstantiationException(ctor.getDeclaringClass(),
>>                                        "Constructor threw exception",
>> ex.getTargetException());
>>                }
>>        }
>>
>> MappingException = org.hibernate.MappingException: An
>> AnnotationConfiguration instance is required to use <mapping
>> class="com.mycompany.app.model.User"/>
>>
>> Help me solve this! Its urgent.
>> Thanks all!
>> --
>> View this message in context:
>> http://www.nabble.com/Hibernate-Named-SQL-query-tp23361995s2369p23361995.html
>> Sent from the AppFuse - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net
>> For additional commands, e-mail: users-h...@appfuse.dev.java.net
>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Hibernate-Named-SQL-query-tp23361995s2369p23379844.html
Sent from the AppFuse - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net
For additional commands, e-mail: users-h...@appfuse.dev.java.net

Reply via email to