preRemove

This commit is contained in:
Bill Burke 2016-07-22 14:24:37 -04:00
parent 00d439b6f0
commit db852f7e11

View file

@ -34,6 +34,7 @@ import org.keycloak.models.jpa.entities.GroupEntity;
import org.keycloak.models.jpa.entities.RealmEntity; import org.keycloak.models.jpa.entities.RealmEntity;
import org.keycloak.models.jpa.entities.RoleEntity; import org.keycloak.models.jpa.entities.RoleEntity;
import org.keycloak.models.utils.KeycloakModelUtils; import org.keycloak.models.utils.KeycloakModelUtils;
import org.keycloak.storage.StorageProviderModel;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.TypedQuery; import javax.persistence.TypedQuery;
@ -127,6 +128,9 @@ public class JpaRealmProvider implements RealmProvider {
em.refresh(realm); em.refresh(realm);
final RealmAdapter adapter = new RealmAdapter(session, em, realm); final RealmAdapter adapter = new RealmAdapter(session, em, realm);
session.users().preRemove(adapter); session.users().preRemove(adapter);
for (StorageProviderModel provider : adapter.getStorageProviders()) {
adapter.removeStorageProvider(provider);
}
realm.getDefaultGroups().clear(); realm.getDefaultGroups().clear();
em.flush(); em.flush();
@ -153,6 +157,7 @@ public class JpaRealmProvider implements RealmProvider {
session.realms().removeRole(adapter, role); session.realms().removeRole(adapter, role);
} }
em.remove(realm); em.remove(realm);
em.flush(); em.flush();