Hibernate不能保存数据?急!!!

wgwt0001 2010-10-22 09:16:02
项目是标准的SSH架构,没有配置任何事务.连接池使用bonecp.

一个最基本的在DAO层使用
Session session = null;
try {
session = getSession();
return session.save(entity);
} finally {
if (session != null && session.isOpen()) {
session.flush();
session.clear();
session.close();
}
}

一点错误没有,控制台打出Hibernate: insert into xxxx (........
去数据库里查看,没有添加进去.

然后这个方法却能够返回给我主键(在数据库中是自增的).

后来又尝试getHibernateTemplate,尝试JDBC,都没有错误.

结果等一段时间控制台打出"Lock wait timeout exceeded; try restarting transaction".
似乎是说事务超时.可是,我根本没有配置事务啊~

这些代码以前在任何项目都是好用的,不知道这是怎么回事.完全弄不明白了.

我以为是数据库表锁住了,用sqlyog连接到数据,用sql语句insert ....., 就能够成功插入数据.而且还会跳开之前在代码里插入的主键, 比如数据库中主键到9,之前代码返回主键10, 却保存失败了. 我然后用sqlyog插入. 会插入主键11. 我真是费解了啊????

求大侠们帮我解答!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzju64676266 2010-10-23
  • 打赏
  • 举报
回复
要开启事务,然后提交事务
ChDw 2010-10-23
  • 打赏
  • 举报
回复
你必须使用session.getTransaction().begin()/commit()来开始和提交事务
xinleicn 2010-10-23
  • 打赏
  • 举报
回复
提交事务了吗?记得commit一下啊。。
_LiuHui 2010-10-23
  • 打赏
  • 举报
回复
Hibernate 在处理数据的时候有三种状态。保存数据的时候是将瞬时状态的数据改变成永久状态。需要配置事务。
my0510520 2010-10-23
  • 打赏
  • 举报
回复
事务是数据库特有的,不提交(commit)数据他是不会向数据库中添加数据的
yuweixin19881108 2010-10-22
  • 打赏
  • 举报
回复
配置下你的职务,我遇到过那个问题executing(*.com.ywx.biz.impl.(..))里面没打点就不能进行操作了。。所以把你的事物配置好。

81,092

社区成员

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

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