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. 我真是费解了啊????

求大侠们帮我解答!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...全文
80 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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.(..))里面没打点就不能进行操作了。。所以把你的事物配置好。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-10-22 09:16
社区公告
暂无公告