обмен строк между Session.save ().какие изменения происходят в выводе.Пожалуйста, смотрите комментарий в коде.я новичок в спящем java - PullRequest
1 голос
/ 10 июля 2019

Что произойдет в выводе, если я поменяю местами, мне не понятно Следующие изменения в выводе произойдут. Если я не поменяю местами

    //Hibernate: insert into Person (age, name) values (?, ?)
    //Hibernate: insert into Address (city, house, person_personId) values 
    //(?, ?, ?)

        SessionFactory sessionFactory = new 
        Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        session.beginTransaction();

        // one to one---test
        //What if we swap line 28 and 29


        session.save(person);
        session.save(address);


        session.getTransaction().commit();
        session.close();



        and here is the output when i swap:
        //Hibernate: insert into Address (city, house, person_personId) 
       //values (?, ?, ?)
      //Hibernate: insert into Person (age, name) values (?, ?)
     //Hibernate: update Address set city=?, house=?, person_personId=? 
    //where addressId=?

1 Ответ

0 голосов
/ 10 июля 2019

Если вы заполняете зависимости в сущностях в настоящее время, различий не будет.

session.save не идет в базу данных в этот момент (может вызывать последовательность, если идентификатор представляет собой сгенерированную последовательностьнапример но это все).Он регистрирует только данную сущность в контексте постоянства.

Фактический INSERT происходит при commit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...