自己搭建Spring+hibernate4可以保存数据,但无法删除数据

wuys 2015-01-20 11:03:18
Spring mvc +hibernate4 搭建的框架,可以保存数据,但删除更新数据的时候(不发出sql语句,删除失败)

事务配置如下

<!-- 事务管理器 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="get*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="true">
<aop:pointcut expression="execution(* cn.com.spring.modules.*.sevice..*.*(..)))" id="daoMethods"/>
<!-- <aop:pointcut expression="execution(* cn.com.spring.service..*.*(..))" id="daoMethods"/> -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="daoMethods"/>
</aop:config>



BaseDAO 类删除

public void delete(T t) {
this.getSession().delete(t);
}


public void deleteById(ID Id) {
T t = get(Id);
// if(t == null){
// return false;
// }
delete(t);
// return true;
}


UserSerivce


@Transactional
@Override
public void saveUser(User user) {
this.userDao.save(user);
}
@Transactional
@Override
public void updateUser(User user) {
this.userDao.update(user);
}
@Override
public User getUserById(int id) {
return this.userDao.get(id);
}
@Transactional
@Override
public void deleteUserById(int id) {
this.userDao.deleteById(id);
}
@Transactional
@Override
public void deleteUser(User u) {
this.userDao.delete(u);
}


...全文
760 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
猿猿养成记 2017-09-05
  • 打赏
  • 举报
回复
楼主当时解决了吗?解决方案是什么?求分享
枣树下的石磙 2016-08-29
  • 打赏
  • 举报
回复
getSession().flush();
lvzhongjia 2016-05-31
  • 打赏
  • 举报
回复
请问楼主是怎么解决的,谢谢
  • 打赏
  • 举报
回复
楼上一语道破,给个赞你
insistant 2016-01-08
  • 打赏
  • 举报
回复
试一试在删除,更新的代码后加一句flush();
  • 打赏
  • 举报
回复
Hibernate4.0获取session已经不能使用sessionFactory.openSession()了; 而应该使用 sessionFactory.getCurrentSession(); 请把你的openSession()的代码贴上来看看,是否是这个原因? 参考http://ask.csdn.net/questions/186931
ym_8695 2016-01-06
  • 打赏
  • 举报
回复
我也遇到这个问题,请问解决了没?
洛鸣生 2016-01-06
  • 打赏
  • 举报
回复
你dao层代码呢?你dao层有实现么?
文哥xxx 2015-01-20
  • 打赏
  • 举报
回复
T t = get(Id); 这个t 能获取到吗
wuys 2015-01-20
  • 打赏
  • 举报
回复
引用 1 楼 guo315648865 的回复:
T t = get(Id); 这个t 能获取到吗
这个是可以的,也能够插入数据,就是更新和删除数据不可以

81,118

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧