[size=medium]说明:我进行的是用户信息修改操作.但每次当我将用户信息修改后点提交,刷新页面看当前用户信息,发现用户信息没有更新.
仔细查找,发现TUser的值是传进来了,就是在dao这里出了问题。
在getHibernateTemplate().update();代码后加flush()方法也不管用。或者用hibernate3的merge()方法也不管用。
于是我写了被注解那部分的代码来代替
getHibernateTemplate().update()方法,就可以更新成功。
毕竟如下可以运行的代码写的比较难看,我还是倾向于找到原因,请大家帮忙。[/size]
[code="java"]
mport java.sql.SQLException;
import java.util.List;
import java.util.ListIterator;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.taiji.bean.TUser;
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
public void saveTUser(TUser user) {
getHibernateTemplate().save(user);
}
@Override
public void updateTUser(TUser user) {
getHibernateTemplate().update(user);
// Session session = getHibernateTemplate().getSessionFactory().openSession();
// org.hibernate.Transaction ts = session.beginTransaction();
// try {
// session.flush();
// ts.begin();
// session.saveOrUpdate(user);
// ts.commit();
// } catch (Exception e) {
// ts.rollback();
// } finally {
// session.close();}
}
public TUser findUserByUserPhone(String userPhone) {
ListIterator<TUser> list = getHibernateTemplate().find("from TUser tu where tu.userPhone='" + userPhone + "'").listIterator();
if (null!=list && list.hasNext()) {
return list.next();
} else {
return null;
}
}
@Override
public void removeTUser(TUser user) {
getHibernateTemplate().delete(user);
}
@SuppressWarnings("unchecked")
@Override
public List<TUser> findTUsers(String query) {
List<TUser> list = getHibernateTemplate().find(query);
return list;
}
@Override
public TUser userlogin(String userphone, String password) {
ListIterator<TUser> list = getHibernateTemplate().find("from TUser tu where tu.userPhone='" + userphone + "' and tu.password='"+password+"' ").listIterator();
if (null!=list && list.hasNext()) {
return list.next();
} else {
return null;
}
}
}
[/code]