-
FEATURED COMPONENTS
First time here? Check out the FAQ!
I'm a nubi one..
i have a simple project for adding some information, but it add nothing to database and there are no errors..
please help me..
this is my POJO class
import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table (name="Person2") public class Person implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue @Column (name="id") private int id; @Column (name="name") private String name; @Column (name="surname") private String surname; public Person(){ } public Person(int id, String name, String surname){ this.id=id; this.name=name; this.surname=surname; } //ommiting getters and setters public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; } }
i'm using AbstractSpringDao like this
import java.util.List; import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public abstract class AbstractSpringDao extends HibernateDaoSupport { public void setSession(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory); } protected void saveOrUpdate(Object obj) { getHibernateTemplate().saveOrUpdate(obj); } protected void delete(Object obj) { getHibernateTemplate().delete(obj); } protected Object find(Class clazz, Long id) { return getHibernateTemplate().get(clazz, id); } protected List findBy(Class clazz, String query) { return getHibernateTemplate().find("FROM "+clazz.getName()+" WHERE "+query); } protected List findAll(Class clazz) { return getHibernateTemplate().find("FROM "+clazz.getName()); } protected List findByOrder(Class clazz, String query) { return getHibernateTemplate().find("FROM "+clazz.getName()+" ORDER BY "+query); } }
and a Dao class extending AbstractSpringDao
import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.glen.bean.Person; public class PersonDAO extends AbstractSpringDao { public void saveOrUpdate(Person person) { super.saveOrUpdate(person); } public void delete(Object ob) { super.getHibernateTemplate().delete(ob); } public Object find(Class clazz, Long id) { Object ob = super.getHibernateTemplate().load(clazz,id); return ob; } public List findAll(Class clazz) { List list = super.getHibernateTemplate().find("from"+" "+clazz.getName()); return list; } }
This is my Interface for Service/Composer
import java.util.List; import com.glen.bean.Person; public interface PersonManager { public List getAllPersons(); /** for simplicity we are only providing a simple business rule method **/ }
My Service/Composer class implement the interface
import com.glen.dao.PersonDAO; import com.glen.bean.Person; import java.util.*; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Intbox; import org.zkoss.zul.Textbox; import org.zkoss.zul.Window; public class PersonManagerImpl extends GenericForwardComposer implements PersonManager { private Window win; private Textbox name; private Textbox surname; private Intbox id; private Person person; private PersonDAO dao; public PersonDAO getDao() { return this.dao; } public void setDao(PersonDAO personDAO) { this.dao = personDAO; } public List getAllPersons() { return this.dao.findAll(Person.class); } public void onClick$btnSave(Event event){ try{ Person persons = new Person(id.getValue(), name.getValue(), surname.getValue()); dao.saveOrUpdate(persons); }catch (Exception e) { // TODO: handle exception } Executions.sendRedirect("view.zul"); } }
my zul
<?page title="Ticket" contentType="text/html;charset=UTF-8"?> <zk> <window title="User" border="normal" id="win" apply="com.glen.composer.PersonManagerImpl"> <groupbox mold="3d"> <grid> <columns height="22px"> <column label="Type" width="150px" /> <column label="Content" /> </columns> <rows> <row> Id : <intbox id="id" width="230px" constraint="no empty:Please enter ID"/> </row> <row> Name : <textbox id="name" width="230px" constraint="no empty:Please enter Name"/> </row> <row> Surname : <textbox id="surname" width="250px" constraint="no empty:Please enter Surname"/> </row> <row spans="2"> <toolbar> <button id="btnSave" label="Save" orient="vertical" width="150px" /> <button id="btnCancel" label="Cancel" orient="vertical" width="150px" /> </toolbar> </row> </rows> </grid> </groupbox> </window> </zk>
I'm so confused, cause there are no errors..
but when i run my project, and clcik save button, it won't add the field..
please let me no where is the wrong codes..
thanks 4 any help
thanks stephan for your advise..
i'm a newbie so sorry if i ask like this..
where must i put the Transaction??
i have add it to context.xml
</bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="factory" /> </bean>
and i add @Transactional into my POJO class
package com.glen.bean; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import org.springframework.transaction.annotation.Transactional; @Entity @Table (name="Person2") @Transactional public class Person implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue @Column (name="id") private int id; @Column (name="name") private String name; @Column (name="surname") private String surname; public Person(){ } public Person(int id, String name, String surname){ this.id=id; this.name=name; this.surname=surname; } //ommiting getters and setters public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; } }
but still got the same..
any suggestion??
Sorry, i don't work in Annotated way. Search the hibernate forum, because it's backend dependend.
Hey your DAO should look like this
@Repository @Transactional @Component("userDAO") //this line assumes that you don't need an entry in the context file for this DAO public class UserDAOImpl { }
and add this to your context
<context:annotation-config />
good luck!!
Asked: 2011-05-31 23:46:30 +0800
Seen: 621 times
Last updated: Jun 01 '11