How do you recommend holding the model in the page? In other words, what is
the alternative code to  "this.user = (EzdecUser)userModel.getObject();"?


Martin Sachs wrote:
> 
> hi
> 
> you used   "this.user = (EzdecUser)userModel.getObject();" This would
> hold in page and not initialized on next request.
> You have to hold the model in the page.
> 
> We have also found an alternative way. You can write a simple Aspect
> with AspectJ to reinit all proxies. This can easily done with
> hibernateSession.lock(NONE).
> Create pointcuts to each getter which is returning a proxy and init the
> proxies.
> 
> Martin
> 
> 
> 
> 
> [email protected] schrieb:
>> I am getting an "org.hibernate.LazyInitializationException - could not
>> initialize proxy - no Session" exception when I try to load an object
>> stored in session. I understand but I am not certain about how to fix
>> it with Wicket. In reviewing the Wicket In Action book, it looks like
>> the way to handle this is to use a LoadableDetachableModel, which I
>> tried. The model is as follows:
>>
>> public class DetachableUserModel extends
>> LoadableDetachableModel<EzdecUser> {
>>
>>     @SpringBean
>>     private ISecurityService securityService;
>>    
>>     private final String email;
>>
>>     public DetachableUserModel(EzdecUser u) {
>>         this(u.getEmail());
>>     }
>>
>>     public DetachableUserModel(String email) {
>>         if (email == null) {
>>             throw new IllegalArgumentException();
>>         }
>>         this.email = email;
>>         System.out.println("email is " + email);
>>         InjectorHolder.getInjector().inject(this);
>>     }
>>
>>     @Override
>>     public int hashCode() {
>>         return email.hashCode();
>>     }
>>
>>     @Override
>>     public boolean equals(final Object obj) {
>>         if (obj == this) {
>>             return true;
>>         } else if (obj == null) {
>>             return false;
>>         } else if (obj instanceof DetachableUserModel) {
>>             DetachableUserModel other = (DetachableUserModel) obj;
>>             return email.equals(other.email);
>>         }
>>         return false;
>>     }
>>
>>     @Override
>>     protected EzdecUser load() {
>>         EzdecUser u = securityService.findUserByEmail(email);
>>         return u;
>>     }
>>
>> }
>>
>> The relevant section of the code where I am using the model is as
>> follows:
>>
>>  public UpdateUserProfilePage() {
>>         this(EzdecSession.getCurrentUser());
>>     }
>>
>>     public UpdateUserProfilePage(EzdecUser user) {
>>         this(new DetachableUserModel(user));
>>     }
>>
>>     private UpdateUserProfilePage(DetachableUserModel userModel) {
>>         this.user = (EzdecUser)userModel.getObject();
>>         setup();
>>     }
>>
>> Anyone have any suggestions on how I can fix this?
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Hibernate-LazyInitializationException-tp24204249p24204789.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to