这是hibernate 的 bug吗?

leves1989 2008-12-29 06:11:02
我调用 myeclipse 生成的sava 方法

console中 提示 sava successful

而且用hibernate访问这个数据也是存在的

而在数据库中确没有保存

是什么原因?

我自己 弱弱的猜测下

是不是因为 没有关闭session 的原因

还是hibernate 的缓存机制 引起的问题

...全文
129 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xql80329 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zou_wei_forever 的回复:]
Session session = getSession();
Transaction tx = session.beginTransaction();
session.save(transientInstance);
tx.commit();
[/Quote]
up
很明显没有commit
tianjiaoxiang 2008-12-31
  • 打赏
  • 举报
回复
好像是查询不需要加事务,增,删,改都要加事务的!
dlpzgr 2008-12-31
  • 打赏
  • 举报
回复
不懂帮顶
wp500 2008-12-31
  • 打赏
  • 举报
回复
spring与hibernate一起使用的话。 spring可以控制事物。
如果单独使用hibernate必须 commit()一下。
lz试试看按照3楼的方法是不是就插入数据库成功了
lvkai0452 2008-12-31
  • 打赏
  • 举报
回复
commit();
f147277262 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 tianjiaoxiang 的回复:]
好像是查询不需要加事务,增,删,改都要加事务的!
[/Quote]

是的..
happystarting 2008-12-30
  • 打赏
  • 举报
回复
事物
[Quote=引用 3 楼 zou_wei_forever 的回复:]
Session session = getSession();
Transaction tx = session.beginTransaction();
session.save(transientInstance);
tx.commit();
[/Quote]
jinhuiyu 2008-12-30
  • 打赏
  • 举报
回复
设置autoCommit=true也可以吧
lujinbao 2008-12-30
  • 打赏
  • 举报
回复
你这个是不是跟别的表有关系?可能也是你的级联的问题吧。。如果是这个问题。可以在与
数据库映射时配置一下级联的cascade属性。。lz看一下吧。。
HuanxueOrSeaty 2008-12-29
  • 打赏
  • 举报
回复
学习
blueram 2008-12-29
  • 打赏
  • 举报
回复
如果单独使用hibernate必须开启事务,

public void testSave1() {
Session session = null;
Transaction tx = null;
try {
session = HibernateUtils.getSession();
tx = session.beginTransaction();

。。。。。。。

session.save(user);
tx.commit();
}catch(Exception e) {
e.printStackTrace();
tx.rollback();
}finally {
HibernateUtils.closeSession(session);
}
}


楼主遇到的情况是因为数据库的事务隔离级别有关,你可以查下资料看看
wj_18 2008-12-29
  • 打赏
  • 举报
回复
没有配置事务
leves1989 2008-12-29
  • 打赏
  • 举报
回复
Transaction 不是是可选的接口吗?
为什么一定要实现事务才会存到数据库

没有其他 方法吗?

还有如果一定要实现事务 为什么myeclipse 不帮你生成 啊
success000 2008-12-29
  • 打赏
  • 举报
回复
不懂,帮顶
success000 2008-12-29
  • 打赏
  • 举报
回复
ding
zou_wei_forever 2008-12-29
  • 打赏
  • 举报
回复
Session session = getSession();
Transaction tx = session.beginTransaction();
session.save(transientInstance);
tx.commit();
zou_wei_forever 2008-12-29
  • 打赏
  • 举报
回复
save要放到事务中,要提交事务!
leves1989 2008-12-29
  • 打赏
  • 举报
回复
请帮助下!
myeclipse 生成的DAO sava方法的代码 如下


public void save(User transientInstance) {
log.debug("saving User instance");
try {
getSession().save(transientInstance);
System.out.println("save user successful!");
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
本下载包与书籍的实战篇紧密结合. 下载包中的程序是一个简明的示例论坛程序,按照循序渐进的原则,分为不同的步骤: 步骤1: 建立最简单的项目基础结构:Board/User/Article三个类,包含最基本的配置文件。同时,在这一步中,建立测试类,刻画项目各个类之间的契约关系。 步骤2: 对文章的种类增加“投票”类型,展示对多型的处理。 步骤3: 增加webwork实现的GUI。 加入中文支持。 步骤4: 升级到Hibernate 3。 环境说明 --------- 程序包中的程序经过测试的运行环境为: 1, Tomcat 5.0.25 2, Hibernate 2.1.7 3, Hibernate 3.0.2 4, Eclipse 3.0.1 (作为IDE) 5, ant 1.6(作为build工具) 6, java sdk 1.4.2 7, mysql 4.1 (作为后台数据库) 8, 至少250M硬盘空间(hibernate 2,3和webwork就将占据138M) 虽然在更高版本中应该可以不加修改的运行,但我们对此不加以保证。(v1.2将对Hibernate 3.0.4进行测试) 安装说明 --------- 1, 确认jdk 1.4.2已经正确安装; 2,将本程序包解压,假设目录为: x:\rs\hib-samples 3, 从hibernate的sf下载区下载2.1.7与3.0.2版本: http://sourceforge.net/project/showfiles.php?group_id=40712 4,将下载的hibernate包解压到x:\rs\hib-samples\hibernate-2.1与x:\rs\hib-samples\hibernate-3,目录结构应该为: x: + rs + hib-samples <--- 本文件包解压的目录 + forum-step1-db-first-middlegen + forum-step1-db-first-synchronizer + forum-step2 + ... + hibernate-2.1 <--- Hibernate 2.1.7解压到这里 + bin <--- 确认bin与doc目录就在解压后的hibernate-2.1目录中 + doc + ... + hibernate-3.0 <--- Hibernate 3.0.2解压到这里 + bin preference -> Java -> Build Path -> User Librarys,分别建立名为Hibernate2,hibernate3,mysql-jdbc的用户库,分别包含对应的lib文件(如hibernate2包含hibernate-2.1目录下的hibernate2.jar及其lib目录下的所有jar文件); 11, 在您的eclipse 中,导入各个目录下的.project文件,以建立工程.(工程名为step1,step2,step3,step4)。在工程的类路径配置中,使用上一步创建的用户库(step1-step3使用Hibernate2,step4使用hibernate3)。确保没有编译错误。 好了,您现在可以开始阅读代码,作一些自己的改变,看看您能得到什么结果 :) 中文处理说明 ------------ 关于中文的处理,是在step3加入的,因此在step1以及step2中,请使用英文进行实验。具体进行的处理为全程采用UTF-8编码. 1,mysql创建时,字符集必须选择UTF-8 2,在mysql jdbc连接的url中,必须指定采用utf-8 encoding。 jdbc:mysql://localhost/forum?useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8 3,在jsp页面中,指定页面采用UTF-8编码. 假若在您的项目中,必须使用GBK编码,则在以上的各个地方,都需要把UTF-8更换为GBK方可正常使用。 版本更新 ----------- v1.2 (PLAN,TBD) * 转换到JTA * 给出一个脱离DAO模式的例子 * 给出for hibernate 3的xdoclet例子 v1.1 (2005.5.25) * 分离db目录下的build.xml * 增加了对投票的图形显示 * 修正了和webwork相关的一个中文bug v1.0 (2005.4.20) * 初始版本

81,091

社区成员

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

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