[hibernate-dev] Still true with Javassist? Any final method prevents Hibernate from creating single-ended association proxies

Emmanuel Bernard emmanuel at hibernate.org
Fri Jul 8 06:11:34 EDT 2011


On 8 juil. 2011, at 11:44, Robin Sander wrote:

> 
> Isn't that totally independent from a method beeing final or not?
> If I have a method:
> 
> public int getSum() {
>  return field1 + field2;
> }
> 
> Then this would trigger the initialization of the entity (in JavassistLazyInitializer I assume)
> and 
> 
> public final int getSum() {
>  return field1 + field2;
> }
> 
> would not? (if field1 and field2 are persistent fields and field-based access is used)

correct. we can't intercept a final method and thus can't initialize when you call getSum()

> 
> Only yesterday I've stumpled upon a related issue in equals(): I've compared a persistent field of two instances
> of the same entity and that _did not_ trigger the initialization of the other instance proxy. So there I had to use
> "If (this.field.equals(other.getField())) { ..."  instead of If (this.field.equals(other.field)) { ..."
> and no method of that entity was final.

Not the same but related. you are bypassing the proxy and thus don't initialize.





More information about the hibernate-dev mailing list