title: Cascade and Inverse in persistence graph
body: <p>I'd like to know what really happens when I do:</p>
  
  <pre><code>Person p1 = new Person();
  ...
  p1.save()
  </code></pre>
  
  <p>in terms of cascades order of save-update.</p>
  
  <p>Here there're some reasonings that I'd like to know if they're correct:</p>
  
  <p>a) If Person have <strong>at least one</strong> relationship with 'inverse=false' (default), it will do all the cascades first and finally persist p1 itself. (Because it could be that the FK identity is not yet known)</p>
  
  <p>b) If Person have <strong>all relationships</strong> with 'inverse=true', it could save p1 first and then do the cascades.</p>
  
  <p>c) Suppose we have a Person&lt;-->Car one-to-one bidirectional relationship and in both we have 'inverse=false' and 'save-update' cascade: </p>
  
  <p>c.1) What would happen?. It seems like a infinite loop situation.</p>
  
  <p>c.2) The correct solution is in Person doing 'cascade=save-update' with inverse=true, and in Car not doing cascade and inverse=false?</p>
  
  <p>Maybe further links about the real logic behind the decision of the order of doing cascades and how the 'inverse' property is involved could help me.</p>
  
  <p>Thanks in advance</p>