使用getHibernateTemplate().update(internApply)语句来更新数据库,更新操作不执行。但使用save却可以添加成功。具体情况如下:action代码:
public String execute() {
String stuName[] = sequence.replaceAll(" ", "").split(",");
for(int i=0;i<stuName.length;i++){
System.out.println("第"+i+"学生的姓名为:"+stuName[i]);
internApply = internApplyDao.findByName(stuName[i]).get(0);//获取对象
internApply.setOrder(i+1);//修改数据库中的字段
System.out.println("修改后的order为:"+internApply.getOrder());
internApplyDao.update(internApply);
}
return SUCCESS;
}以下为截取的部分后台输出:第1学生的姓名为:郭剑乔
16:28:20,475 DEBUG org.hibernate.SQL:111 - select internappl0_.Tn_ID as Tn1_22_, internappl0_.Tn_apply_time as Tn2_22_, internappl0_.Tn_info_ID as Tn7_22_, internappl0_.Tn_is_enroll as Tn3_22_, internappl0_.Tn_order as Tn4_22_, internappl0_.Tn_res as Tn5_22_, internappl0_.Tn_st_userName as Tn6_22_ from intern_apply internappl0_ where internappl0_.Tn_st_userName=?
Hibernate: select internappl0_.Tn_ID as Tn1_22_, internappl0_.Tn_apply_time as Tn2_22_, internappl0_.Tn_info_ID as Tn7_22_, internappl0_.Tn_is_enroll as Tn3_22_, internappl0_.Tn_order as Tn4_22_, internappl0_.Tn_res as Tn5_22_, internappl0_.Tn_st_userName as Tn6_22_ from intern_apply internappl0_ where internappl0_.Tn_st_userName=?
修改后的order为:2
第2学生的姓名为:郭清燕可以看到程序直接跳过了update语句。。哪位高人帮忙解答一下
public String execute() {
String stuName[] = sequence.replaceAll(" ", "").split(",");
for(int i=0;i<stuName.length;i++){
System.out.println("第"+i+"学生的姓名为:"+stuName[i]);
internApply = internApplyDao.findByName(stuName[i]).get(0);//获取对象
internApply.setOrder(i+1);//修改数据库中的字段
System.out.println("修改后的order为:"+internApply.getOrder());
internApplyDao.update(internApply);
}
return SUCCESS;
}以下为截取的部分后台输出:第1学生的姓名为:郭剑乔
16:28:20,475 DEBUG org.hibernate.SQL:111 - select internappl0_.Tn_ID as Tn1_22_, internappl0_.Tn_apply_time as Tn2_22_, internappl0_.Tn_info_ID as Tn7_22_, internappl0_.Tn_is_enroll as Tn3_22_, internappl0_.Tn_order as Tn4_22_, internappl0_.Tn_res as Tn5_22_, internappl0_.Tn_st_userName as Tn6_22_ from intern_apply internappl0_ where internappl0_.Tn_st_userName=?
Hibernate: select internappl0_.Tn_ID as Tn1_22_, internappl0_.Tn_apply_time as Tn2_22_, internappl0_.Tn_info_ID as Tn7_22_, internappl0_.Tn_is_enroll as Tn3_22_, internappl0_.Tn_order as Tn4_22_, internappl0_.Tn_res as Tn5_22_, internappl0_.Tn_st_userName as Tn6_22_ from intern_apply internappl0_ where internappl0_.Tn_st_userName=?
修改后的order为:2
第2学生的姓名为:郭清燕可以看到程序直接跳过了update语句。。哪位高人帮忙解答一下
public class InternApplyDaoImpl implements InternApplyDao {
HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public void delete(Integer stuId, Integer internId) { } public Integer save(InternApply internApply) {
return (Integer)hibernateTemplate.getSessionFactory().getCurrentSession().save(internApply);
}
public void update(InternApply internApply) {
getHibernateTemplate().update(internApply);
}
public void update(UserBean userBean){
Session session=this.getSession();
try{
session.beginTransaction();
session.update(userBean);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}
finally{
session.close();
}
}
public static void main(arg0[]){
UserDao dao=new UserDao();
UserBean bean=new UserBean("张三丰","1","男","1","[email protected]");
// 设置ID
bean.setId(6);
dao.update(bean);}