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 Development Team