[keycloak-user] Close EntityManager in RealmResourceProvider?

Dmitry Telegin dt at acutus.pro
Mon Jul 30 23:20:02 EDT 2018


Hi Henning,

First, it's recommended that you don't use EntityManager directly in your RealmResourceProvider, but rather create a facade class to encapsulate JPA operations.

examples/providers/domain-extension is a nice example of the above (look for ExampleService and its implementation).

Second, generally you should retrieve an EntityManager before each new transaction. As long as it's in a local variable, it will be finalized and closed automatically, so normally you don't need to bother.

Cheers,
Dmitry Telegin
CTO, Acutus s.r.o.
Keycloak Consulting and Training

Pod lipami street 339/52, 130 00 Prague 3, Czech Republic
+42 (022) 888-30-71
E-mail: info at acutus.pro

On Fri, 2018-07-27 at 10:17 +0200, Henning Waack wrote:
> Hi.
> 
> I am implementing a RealmResourceProvider (KC 4.0) in which I use an
> EntityManager provided by the KeycloakSession to access the KC DB:
> 
> EntityManager em =
> ((KeycloakSession)session).getProvider(JpaConnectionProvider.class).getEntityManager();
> 
> In my class which extends
> org.keycloak.services.resource.RealmResourceProvider and uses this
> EntityManager, do I have to close the EM instance after using it? Or do I
> have to close it in my RealmResourceProviderFactory.close() method where I
> obtain it from the session?
> 
> Thanks & greetings
> 
> Henning
> _______________________________________________
> keycloak-user mailing list
> keycloak-user at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user


More information about the keycloak-user mailing list