[keycloak-user] How to access entity manager from custom thread

Libor Krzyžanek lkrzyzan at redhat.com
Mon Aug 24 10:33:40 EDT 2015


Hi there,
within my listener factory's postInit method I’m creating a separate thread that needs to run a sql query by using entity manager from JPA provider.

In thread I do
KeycloakModelUtils.runJobInTransaction(sessionFactory, new KeycloakSessionTask() {
   @Override
   public void run(KeycloakSession session) {
…
EntityManager em = session.getProvider(JpaConnectionProvider.class).getEntityManager();
TypedQuery<UserEntity> query = em.createQuery(
      "select u from UserEntity u where u.realmId = :realmId order by u.username", UserEntity.class);


Unfortunately I got java.lang.NoClassDefFoundError: javax/persistence/EntityManager


I tried to set various class loaders via
thread.setContextClassLoader(DefaultJpaConnectionProviderFactory.class.getClassLoader());

but with no success.

I’m running this on EAP 6.4.

What is the proper way how to retrieve entity manager for running custom queries?

Thanks,

Libor Krzyžanek
jboss.org <http://jboss.org/> Development Team

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/keycloak-user/attachments/20150824/c298ac93/attachment.html 


More information about the keycloak-user mailing list