I would create a method in your DAO to do this and use
getHibernateTemplate() then call one of the methods on HibernateTemplate.

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/orm/hibernate3/HibernateTemplate.html

Or you should be able to call personManager/DAO.delete(-2L).

Matt

On Tue, Apr 28, 2009 at 9:21 PM, Kenny Ha <vifaxoc...@yahoo.com> wrote:

>
> So if I want to use my SQL query which is defined from an XML file ,what
> should I do??
> I try to do by following steps :
>
> 1. Create a file Person.hbm.xml :
>
> <?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="Person.SqlQuery">
>                <![CDATA[
>                        delete from person where id = -2
>                ]]>
>        </sql-query>
> </hibernate-mapping>
>
> 2. Add a mapping resource to 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 class="com.mycompany.app.model.Person"/>
>
>     <!-- Mapping files -->
>     <mapping resource="Person.hbm.xml"/>
>
>    </session-factory>
> </hibernate-configuration>
>
> 3. Create a class HibernateUtil :
>
> 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;
>  }
> }
>
> 4. And I call SQL query named Person.SqlQuery in class PersonAction.java
> like this :
>
> package com.mycompany.app.webapp.action;
>
> import com.opensymphony.xwork2.Preparable;
> import com.mycompany.app.service.PersonManager;
> import com.mycompany.app.model.Person;
> import com.mycompany.app.webapp.action.BaseAction;
>
> import java.util.List;
>
> import com.mycompany.app.webapp.util.HibernateUtil;
>
> import org.hibernate.Query;
> import org.hibernate.Session;
>
> public class PersonAction extends BaseAction implements Preparable {
>    private PersonManager personManager;
>    private List persons;
>    private Person person;
>    private Long  id;
>
>    private HibernateUtil hibernateUtil = new HibernateUtil();
>
>    [....]
>
>    public String delete() {
>        //personManager.remove(person.getId());
>
>        Session session = hibernateUtil.getSession();
>        Query query = session.getNamedQuery("User.SqlQuery");
>        query.executeUpdate();
>
>        saveMessage(getText("person.deleted"));
>
>        return SUCCESS;
>    }
>
>    [....]
>
> }
>
> 5. Then I run application but some errors occur when I access Person List
> page :
>
> javax.servlet.ServletException: Unable to instantiate Action,
> com.mycompany.app.webapp.action.PersonAction,  defined for 'persons' in
> namespace '/'Error creating bean with name
> 'com.mycompany.app.webapp.action.PersonAction': Instantiation of bean
> failed; nested exception is
> org.springframework.beans.BeanInstantiationException: Could not instantiate
> bean class [com.mycompany.app.webapp.action.PersonAction]: Constructor
> threw
> exception; nested exception is org.hibernate.MappingException: An
> AnnotationConfiguration instance is required to use  - action -
> file:/E:/My%20Data/Projects/demo_7/target/classes/struts.xml:114:99
> [...]
>
> I debug my application ,and it throws an exeption at line code :
> config = new Configuration().configure();
>
> Can u help me solve this??
> Thanks much!
>
>
> mraible wrote:
> >
> > Their are no SQL statements unless you're using iBATIS. Hibernate uses
> > HibernateTemplate to do most of its CRUD actions in AppFuse.
> >
> >
> http://source.appfuse.org/browse/appfuse/trunk/data/hibernate/src/main/java/org/appfuse/dao/hibernate/GenericDaoHibernate.java?r=trunk
> >
> > Matt
> >
> > On Tue, Apr 28, 2009 at 8:31 PM, Kenny Ha <vifaxoc...@yahoo.com> wrote:
> >
> >>
> >> Hi all,
> >>
> >> In a generated full-source Maven project, where can I find SQL query for
> >> method edit(), delete(),...??
> >>
> >> Thanks!
> >> --
> >> View this message in context:
> >> http://www.nabble.com/SQL-query---tp23289344s2369p23289344.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/SQL-query---tp23289344s2369p23289867.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