代码如下:
/**
* 删除学生
* @param id
*/
public void delete(int id){
Student stu = (Student)this.hibernateTemplate.load(new Student().getClass(), id);
this.hibernateTemplate.delete(stu);
}
在配置文件中配置显示sql ,尽然只有第一句话发送sql,并执行了的,delete那一句竟然没得任何动静。不知道是哪里出了问题 ,希望大家帮帮忙。
显示的输出id 也是能够得到值的,在控制台,自己执行这一句也是可以的,但是放到tomcat下面,从前台页面传值下来,这个delete就不执行了,郁闷·······
/**
* 删除学生
* @param id
*/
public void delete(int id){
Student stu = (Student)this.hibernateTemplate.load(new Student().getClass(), id);
this.hibernateTemplate.delete(stu);
}
在配置文件中配置显示sql ,尽然只有第一句话发送sql,并执行了的,delete那一句竟然没得任何动静。不知道是哪里出了问题 ,希望大家帮帮忙。
显示的输出id 也是能够得到值的,在控制台,自己执行这一句也是可以的,但是放到tomcat下面,从前台页面传值下来,这个delete就不执行了,郁闷·······
控制台有sql? sql贴出来。
Student stu = (Student)this.hibernateTemplate.load(new Student().getClass(), id);这里没必要实例化一个Student 然后得到class 直接用Student.class 就行了。Student stu = (Student)(this.hibernateTemplate.load(Student.class , id));
Hibernate:
select
student0_.id as id3_2_,
student0_.age as age3_2_,
student0_.cla_id as cla7_3_2_,
student0_.hobbys as hobbys3_2_,
student0_.name as name3_2_,
student0_.ps as ps3_2_,
student0_.sex as sex3_2_,
sclass1_.id as id2_0_,
sclass1_.major_id as major3_2_0_,
sclass1_.name as name2_0_,
major2_.id as id1_1_,
major2_.college_id as college3_1_1_,
major2_.name as name1_1_
from
student student0_
left outer join
sclass sclass1_
on student0_.cla_id=sclass1_.id
left outer join
major major2_
on sclass1_.major_id=major2_.id
where
student0_.id=?
Hibernate:
select
college0_.id as id0_0_,
college0_.name as name0_0_
from
college college0_
where
college0_.id=?
这是发送的sql,按照代码逻辑,应该后面就是delete 的语句,可是没有发送任何语句
这句话执行之后 stu为null所以delete没有执行吧!
不是这个问题,是因为sprin 的事务必须开启,我之前没有开启事务,stu不是null
ths