title: hibernate persist method “called outside of transaction” meaning
body: <blockquote>
    <p>persist() makes a transient instance persistent. However, it does not
    guarantee that the identifier value will be assigned to the persistent
    instance immediately, the assignment might happen at flush time.
    persist() also guarantees that it will not execute an INSERT statement
    if it is called outside of transaction boundaries. This is useful in
    long-running conversations with an extended Session/persistence
    context.</p>
  </blockquote>
  
  <p>This line "persist() also guarantees that it will not execute an INSERT statement if it is called outside of transaction boundaries." seems to be confusing. If we called the persist(), then it is already part of the session. Then why does the question of "outside of transaction" arrive?</p>