hibernate里的修改操作
public void update(Object o)throws Exception {
Session session = this.getSession();
Transaction tx = session.beginTransaction();
session.update(o);
session.flush();
tx.commit();
this.closeSession();
}
框架,我是个新手,对于修改里的 session.update(o)这里的对象o是我已经修改好的内容吗?
我们一般都知道的既然是修改肯定是将原来的改换成新的内容那么这里原来的内容是什么?它是将什么修改了
麻烦高手解释下,一直没理解
public void update(Object o)throws Exception {
Session session = this.getSession();
Transaction tx = session.beginTransaction();
session.update(o);
session.flush();
tx.commit();
this.closeSession();
}
框架,我是个新手,对于修改里的 session.update(o)这里的对象o是我已经修改好的内容吗?
我们一般都知道的既然是修改肯定是将原来的改换成新的内容那么这里原来的内容是什么?它是将什么修改了
麻烦高手解释下,一直没理解
你可以这样吧:
public void update(Object o)throws Exception {
Session session = this.getSession();
Object o2=session.get(o.class,o.id);//其中我假设id是o对象的主键
Transaction tx = session.beginTransaction();
session.update(o2);
session.flush();
tx.commit();
this.closeSession();
}
1)临时状态(transient):刚刚用new语句创建,还没有被持久化,不处于session的缓存中。
2)持久化状态(persistent):已经被持久化,加入到session的缓存中
3)游离状态(detached):已经被持久化,但不再处于session的缓存中,例如session已经close想楼主的情况,用session.get(id)是使对象处于持久化状态,再用update,由于处于同一个session,所以对象都是处于持久化状态,就没有问题。如果楼主是new一个object出来,而没有带id,再去update就会有问题建议楼主买本hibernate的书看看。