title: Does a final method prevent Hibernate from creating a proxy for such an entity?
body: <p>Hibernate uses proxies to enable lazy loading of collections and even single-ended associations. According to Hibernate's (3.6.5) reference documentaion (<em>Section 21.1.3, Single-ended association proxies</em>), such a proxy can't be constructed by Hibernate if it contains "<em>any final methods</em>".<br>
  My question is, does this restriction apply to getters/setters of persistent fields only or really to any method in an entity class? So, does a method like this one:</p>
  
  <pre><code>public final String toString() {
     return this.getClass().getSimpleName() + id;
  }
  </code></pre>
  
  <p>really prevent the creation of a (CGLIB or Javassist) proxy for this entity?
  Does it matter if field-based or property access is used? Since CGLIB was replaced by Javassist, does this provide any more features in this direction?</p>
  
  <p>I like to use inheritance in my entity hierarchy and hence the requirement to define some final methods,
  for example, in the base class to prevent subclasses from overriding those methods.</p>
  
  <p>thanks in advance!</p>