关于网友提出的“ Spring HibernateTemplate中update,add,delete方法都无法提交数据库!”问题疑问,本网通过在网上对“ Spring HibernateTemplate中update,add,delete方法都无法提交数据库!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: Spring HibernateTemplate中update,add,delete方法都无法提交数据库!
描述: 今天在编写单表增删改查的时候,出现了问题:
后台的Action可以成功执行,也没有报错,但是数据库的数据就是没有修改!
运用的是HibernateDaoSupport中的方法
/**
* 通过指定ID删除单条角色信息
*/
public void deleteRoleById(String roleId){
PtRoleInfo ptRoleInfo = (PtRoleInfo) this.getHibernateTemplate().get(PtRoleInfo.class, roleId);
this.getHibernateTemplate().delete(ptRoleInfo);
}
/**
* 更改角色信息
*/
@SuppressWarnings("unchecked")
public void updateRoleInfoById(RoleInfo roleInfo){
//PtRoleInfo ptRoleInfo = new PtRoleInfo();这里New出来的对象,和数据库不能对应
PtRoleInfo ptRoleInfo = (PtRoleInfo) this.getHibernateTemplate().get(PtRoleInfo.class, roleInfo.getRoleId());
// ptRoleInfo.setRoleId(roleInfo.getRoleId());
ptRoleInfo.setRoleName(roleInfo.getRoleName());
ptRoleInfo.setDeil(roleInfo.getDeil());
this.getHibernateTemplate().update(ptRoleInfo);
}
/**
* 保存角色信息
*/
public void saveRoleById(RoleInfo roleInfo){
PtRoleInfo ptRoleInfo = new PtRoleInfo();
ptRoleInfo.setRoleId(roleInfo.getRoleId());
ptRoleInfo.setRoleName(roleInfo.getRoleName());
ptRoleInfo.setDeil(roleInfo.getDeil());
this.getHibernateTemplate().save(ptRoleInfo);
}
我想可能是事物配置的问题
classpath:hibernate.cfg.xml
<>
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<>
advice-ref="txAdvice" />
求教,到底哪里出了问题!谢谢了
解决方案1: 如果你直接在数据库里进行删除,但不提交事务的话 数据也是删不掉的
解决方案2: 我想应该也是 Spring事务配置有问题。。。。
我以前也碰到过这问题,运行什么都是好的,无异常,就是数据没提交到数据库里面去,后来一检查是 pointcut里面写错了
解决方案3: 唉~~~什么配置我也不看了~~
如果Action可以输出数据的话那么就是你的数据库的语言出问题了哈~~~
检查一下你的语句哈~~~有时候少个字段什么错就不报,也可以在Action里输出
也提示成功修改,但是就是不修改,这肯定就是你的数据库没有写正确哈~~~
因为在数据库那里写错了是不会报错的~~~
解决方案4:
<>
advice-ref="txAdvice" />
你用这样吧:
<>
expression="execution(* com.test.dc.manager.*.*(..))" />
以上介绍了“ Spring HibernateTemplate中update,add,delete方法都无法提交数据库!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2954409.html