关于hibernate保存的有关问题
关于hibernate保存的问题
我用hibernate sava()插入一条记录,然后我想取得刚刚插入到数据库中记录的ID(native自动增长的),
查了下,好像用merge()可以返回刚才保存对象的持久化状态。于是我写了下面代码:
User user = new User();
user.setUsername = "aaa";
user.setPassword = "aaa";
User u = (User)getHibernateTemplate.merge(user);
int id = u.getId();
但是取到的id为空,为什么?我代码写错了还是我理解错了?
------解决方案--------------------
用saveOrUpdate()就行的啊 你用saveOrUpdate()的总要传入一个对象的啊
你直接对那个对象 object.getId()就能取到了啊
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
你写的代码还没有执行保存操作,就把他取出来了,怎么会有值
------解决方案--------------------
我用hibernate sava()插入一条记录,然后我想取得刚刚插入到数据库中记录的ID(native自动增长的),
查了下,好像用merge()可以返回刚才保存对象的持久化状态。于是我写了下面代码:
User user = new User();
user.setUsername = "aaa";
user.setPassword = "aaa";
User u = (User)getHibernateTemplate.merge(user);
int id = u.getId();
但是取到的id为空,为什么?我代码写错了还是我理解错了?
------解决方案--------------------
用saveOrUpdate()就行的啊 你用saveOrUpdate()的总要传入一个对象的啊
你直接对那个对象 object.getId()就能取到了啊
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
你写的代码还没有执行保存操作,就把他取出来了,怎么会有值
------解决方案--------------------
- Java code
Transaction t = session.beginTransaction(); getGameInfoDAO().savaorupdate(gameinfo); //Object obj = getGameInfoDAO().merge(gameinfo); //这里gameinfo.getGameinfoId()取出来没值 t.commit();//先提交~后取值 request.setAttribute("Sid", gameinfo.getGameinfoId()); request.setAttribute("message", "添加成功!"); session.close();