2016-02-14 5 views
1

Перехода через этот учебникВ каком состоянии находится объект спящего режима после совершения?

«Когда сеанс закончился, сохранение объект устанавливается в отдельный объект»

мой вопрос, что произойдет, если начать другую сделку после того, как первый, но совершить до закрытия сессии. какое состояние является объектом пользователя в данный момент?

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(); 
} 
+0

Если вы все еще в той же 'Session' тогда объект все еще должен быть приложен. –

+0

извините, что я не знаком с «прикрепленным». это то же самое, что и переходный? – rtd353

+0

он все равно будет прикреплен – achabahe

ответ

0

После того, как объект был присоединен к соответствующей Hibernate сессии, он будет оставаться управляемым объектом, пока либо экземпляр не будет удален из кэша Hibernate Session или сеанс закрывается.

При этом, если вы создадите дополнительную транзакцию до закрытия сеанса или вытеснения управляемых объектов сеанса, объект будет продолжать управляться и отслеживаться сеансом. Это означает, что вы можете продолжать использовать сохраненную сущность из транзакции 1 в своих последующих транзакциях без проблем, поскольку она все еще управляется, пока ваши последующие транзакции используют один и тот же сеанс Hibernate.

1

Предприятие находится в managed состоянии.

chart

Смежные вопросы