title: @ManyToMany initiating LazyInitializationException
body: <p>For the some testing purposes, I'm trying to have JUnit test throwing LazyInitializationException.</p>
  
  <p>My case is that I have 3 entities</p>
  
  <pre><code>@Entity(name = "Role")
  public class Role {
      @LazyCollection(LazyCollectionOption.TRUE)
      @ManyToMany(mappedBy = "roles", fetch=FetchType.LAZY)
      private Set&lt;AppUser&gt; appUsers;
      ...
  
  }
  
  @Entity(name = "Group")
  public class Group {
      @LazyCollection(LazyCollectionOption.TRUE)
      @ManyToMany(mappedBy = "groups", fetch=FetchType.LAZY)
      private Set&lt;AppUser&gt; appUsers;
      ...
  }
  
  @Entity(name = "AppUser")
  public class AppUser {
      @LazyCollection(LazyCollectionOption.TRUE)
      @ManyToMany(fetch= FetchType.LAZY)
      @JoinTable(name = "APPUSER_ROLE", joinColumns = @JoinColumn(name = "USER_ID", referencedColumnName = "ID"), inverseJoinColumns = @JoinColumn(name = "ROLE_ID", referencedColumnName = "ID"))
      private Set&lt;Role&gt; roles;
      ...
  
      @LazyCollection(LazyCollectionOption.TRUE)
      @ManyToMany(fetch= FetchType.LAZY)
      @JoinTable(name = "APPUSER_GROUP", joinColumns = @JoinColumn(name = "USER_ID", referencedColumnName = "ID"), inverseJoinColumns = @JoinColumn(name = "GROUP_ID", referencedColumnName = "ID"))
      private Set&lt;Group&gt; groups;
      ...
  
  } 
  </code></pre>
  
  <p>I generate some test data, where all these 3 are correctly persisted in DB with the relation. I commit the transaction then.</p>
  
  <p>But then I try in the same test method to read <code>Role</code> (based on id), but I get also all the other related entities read (seem to be loaded eagerly). Why is it so? How can I come to <code>LazyInitializationException</code>?</p>
  
  <p><strong>EDIT</strong>: OK I'm not interested in the general description, rather I'd need a code sample, as I can't have it initiated in my case. General description doesn't solve my problem.</p>