SSH中执行了删除为什么没有打印sql语句?而且没有删除,也没有报错!求解释(图)
上面是代码,执行没有问题,这个是在控制台打印的sql语句,没有delete这一项!我在Spring中配置了del*,方法名也是以这个开头的,为什么删除不了呢?而且还不报错...
上面是代码,执行没有问题,
这个是在控制台打印的sql语句,没有delete这一项!
我在Spring中配置了del*,方法名也是以这个开头的,为什么删除不了呢?而且还不报错,有点急,求解决,谢谢! 展开
这个是在控制台打印的sql语句,没有delete这一项!
我在Spring中配置了del*,方法名也是以这个开头的,为什么删除不了呢?而且还不报错,有点急,求解决,谢谢! 展开
1个回答
展开全部
你配置的这个txAdivce是用于事务控制的,而不是用来打印sql的。
你需要配置的内容:
spring配置
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="connection.driver_class">com.mysql.jdbc.Driver</prop>
<prop key="hibernate.show_sql">true</prop><!--打印sql语句-->
</props>
</property>
追问
这个我是知道的,打印sql语句可以再hibernate.cfg.xml中
true
我的这个主要的问题是他执行了 getHibernateTemplate().update(tfunc);没有报错,值我也能输出来,没有错误,但是为什么总是修改不了?执行了修改但是却没有更改数据库!
追答
1 你的po有唯一主键ID吗?hibernate在比较两个对象是否同一对象时,是按ID来比较的,这样的话,你可以用第一种方法更新,hibernate根据你那个ID就可以找到那个对象了。
2 如果1 方式不行,或者你使用的是联合主键,你可以使用下边这这种方式进行更新:
直接将对象查出来,然后直接更新这个对象。
3 如果1和2两种方式都解决不了,你使用JdbcTemplate,写sql执行更新。
你这个问题很可能是hibernate根本就没有找到指定的数据库记录,并没有对数据库的记录进行修改,你可以查看下这个更新函数的更新记录值的个数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询