【发布时间】:2016-02-14 19:24:27
【问题描述】:
阅读本教程
“一旦会话结束,持久化对象设置为分离对象”
我的问题是,如果您在第一次提交之后但在关闭会话之前开始另一个事务会发生什么。此时用户对象处于什么状态?
public static void main(String[] args) {
System.out.println("Maven + Hibernate + Oracle");
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
DBUser user = new DBUser(); //creating transient object
user.setUserId(104);
user.setUsername("user1");
user.setCreatedBy("system");
user.setCreatedDate(new Date());
session.saveOrUpdate(user); //Updating the transient object to persistence object
session.getTransaction().commit();
session.beginTransaction();
user.setUsername("user2"); //what state is user object in right now?
session.saveOrUpdate(user);
session.getTransaction().commit();
session.close();
}
【问题讨论】:
-
如果您仍然在同一个
Session中,则该对象仍应附加。 -
对不起,我不熟悉“附加”。这和瞬态是一样的吗?
-
它仍然会附加