yhkn.net
当前位置:首页 >> hiBErnAtE,在前面没有sAvE方法的情况下,在其他方法里比如upDAtE方法中怎么通过gEt... >>

hiBErnAtE,在前面没有sAvE方法的情况下,在其他方法里比如upDAtE方法中怎么通过gEt...

是不是你修改的时候没有给传过来的实体赋ID的值,就是主键的值,如果没有赋值的话,hibernate自带的update方法就会俺添加的方法执行了,就是在数据库中另插一条数据了

如果你是用myeclipse的hibernate自动生成的dao的话,save方法中的代码应该是: session session=hibernateseesionfactory.getsession(); transaction tx=session.begintransaction(); //开始事务 session.save(对象名); 然后一定要 tx.

saveorupdate()如果传入的对象在数据库中有就做update操作,如果没有就做save操作.save()在数据库中生成一条记录,如果数据库中有,会报错说有重复的记录.update()就是更新数据库中的记录

在配置文件中的set中写一个cascade=save-update在代码中要先双向通知一下:如:A是一,B是多:a.setB(集合),b.setA(A的对象)就可以了

首先,你这个old对象是在session中取得的,所以这个对象已经和数据库同步了,或者说相关联了如果你的session中的old对象发生变法,提交事务后,数据库中的数据也会更新你注视了save方法,不要以为session就不会在和数据库打交道了,在你整个方法执行完毕,session就会关闭,在关闭之前,session会自动提交事务,清理缓存,这个操作注定是要和数据库打交道,也就是更新数据库数据

我记得好像有一个方法包含了update.saveOrUpdate()?不记得了. 或者是把save复制下,然后把save给改成merge? 我们当时学hibernate的时候都没有教材,小飞老师教什么学什么,,,我好像还有他录课视频来

没用手动声明事务~ 你这样必须 用的JDBC驱动程序的 java.sql.Connection的close()方法会自动提交事务~ 对象标识符 必须是identity和select~ 这样在用save()方法就会向数据库插入数据~ 如果用其他策略只会在清理session缓存时才会执行SQL语句~ hibernate的Trasction.commit在提交事务的时候会自动清理缓存~因为你没用hibernate的事务边界声明~ 对象标识符用的其他的策略~ 所以SQL语句一直没执行~ 超时~ 我估计~ 猜测~ 仅供参考~

首先创建一个bean ,与数据库里相应的表通过hibernate映射,比如User.java和User.hbm.xml,以后每次更新或保存数据时创建一个bean(如:User user=new User();)实例,将数据保存到该实例即可.然后用hibernate的方式,saveorupdate(user)即可保存或更新.

当然你也可以自己写一个sql语句,insert into 表(filed)values('');还有一个 persist();

hibernate的save方法:当主键一样的时候,第二次调用save方法就是执行更新操作的了. 、 就是这里:yhgwdz.setYhid(Integer.toString(yhid));

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.yhkn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com