On Thu, Jun 27, 2013 at 11:25 PM, Bas Gooren <b...@iswd.nl> wrote: > Hi Andreas, > > When your validator fails, you remain on the FormPage. A quick debug session > shows me that the injected IService remains the same accross requests.
I've seen this too. I thought that this didn't matter since, as you said: "The GuiceComponentInjector which is set-up in the wicket application injects proxies". > The fix for your problem is simple, and a best practice anyway: inject > Provider<EntityManager> in your service. > > It's a best practice since the service does not know the "scope" of the > entitymanager, all it knows is that the entitymanager has a different > lifecycle; Your service may be instantiated and kept around for the time > your app is running, but could also be instantiated on the fly when needed. > That's one of the reasons why Provider<> was invented: if the scope is > different, a provider allows you to nicely deal with it. > > In case you are not familiar with providers: it has no negative side-effects > in terms of performance. > The guice-persist module binds the EntityManager per request, so all calls > to Provider<EntityManager> while in the same request will yield the exact > same EntityManager instance. > > > > PS See https://code.google.com/p/google-guice/wiki/InjectingProviders (header > "Providers for Mixing Scopes"). Thank you Bas for this excellent answer. Much appreciated. -- Andreas Lundblad --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org