[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