
Hi, I am using Spring,Hibernate and Tapestry to save and also fetch data simultaneously from mysql database.I am facing a problem,whenever i refresh the number of data saved and fetched is repeated all the time.Please give me a solution to get data only once without repetation,or Detete table after data is fetched.
Here is UserManagerImpl code: package tuto.webssh.service.impl;
import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import tuto.webssh.domain.dao.UserDao; import tuto.webssh.domain.model.Info; import tuto.webssh.service.UserManager;
public class UserManagerImpl implements UserManager {
private final Log logger = LogFactory.getLog(UserManagerImpl.class);
private UserDao userDao = null;
/**
* setter to allows spring to inject userDao implementation
* @param userDao : object (implementation of UserDao interface) to inject.
*/
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void getSave(Info info) {
userDao.getSave(info);
}
public List<Info> toRetrieve() {
return userDao.getRetrieve();
} }
Here is class to Fetch data: package tuto.webssh.web.pages;
import java.util.List; import tuto.webssh.domain.model.Info; import tuto.webssh.service.UserManager; import org.apache.tapestry.annotations.Inject; import org.apache.tapestry.annotations.Persist; import org.apache.tapestry.annotations.Service;
public class Fetch { @Inject @Service("userManager") private UserManager userManager;
@Persist
private List<Info> info;
public List<Info> getInfo() {
fetch();
return info;
}
public void setInfo(List info) {
this.info = info;
}
public void fetch()
{
String str="fetched data";
List<Info> tempInfo = userManager.toRetrieve();
info=tempInfo;
}
}
Here is UserDaoImpl code: package tuto.webssh.domain.dao.hibernate3; import java.util.List;
import tuto.webssh.domain.model.Info; import tuto.webssh.domain.dao.UserDao; import org.hibernate.Session; import org.hibernate.Criteria; import org.hibernate.Transaction; import org.springframework.dao.DataAccessException; import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
public UserDaoImpl() { // TODO Auto-generated constructor stub } public void getSave(Info info) { try{ Session sess = getHibernateTemplate().getSessionFactory().getCurrentSession(); Transaction tx = sess.beginTransaction(); sess.save(info); tx.commit(); }
catch(DataAccessException e)
{
e.printStackTrace();
}
} public List<Info> getRetrieve(){
Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
session.beginTransaction();
Criteria crit = session.createCriteria(Info.class);
List<Info> info=crit.list();
return info;
}
}
Here is class for Table(Info) in MySQL database with database name Json: package tuto.webssh.domain.model;
// Generated Feb 23, 2011 5:19:45 PM by Hibernate Tools 3.4.0.CR1
import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import static javax.persistence.GenerationType.IDENTITY; import javax.persistence.Id; import javax.persistence.Table;
/** * Info generated by hbm2java */ @Entity @Table(name = "info", catalog = "json") public class Info implements java.io.Serializable {
private Integer id;
private String names;
private String images;
private String heading;
private String type;
public Info() {
}
public Info(String names, String images, String heading, String type) {
this.names = names;
this.images = images;
this.heading = heading;
this.type = type;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "names", nullable = false, length = 25)
public String getNames() {
return this.names;
}
public void setNames(String names) {
this.names = names;
}
@Column(name = "images", nullable = false, length = 25)
public String getImages() {
return this.images;
}
public void setImages(String images) {
this.images = images;
}
@Column(name = "heading", nullable = false, length = 25)
public String getHeading() {
return this.heading;
}
public void setHeading(String heading) {
this.heading = heading;
}
@Column(name = "type", nullable = false, length = 25)
public String getType() {
return this.type;
}
public void setType(String type) {
this.type = type;
}
}
This fetch and save is called by index.java and index.html pages to display.
Thank you, With regards, Yuvaraj.
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.