mirror of
https://github.com/keycloak/keycloak.git
synced 2025-12-21 14:30:05 -06:00
Remove extra flush events to increase performance
Closes #43362 Signed-off-by: Alexander Schwartz <alexander.schwartz@ibm.com>
This commit is contained in:
committed by
GitHub
parent
4c570d925b
commit
02dfb4bd8a
@@ -1320,7 +1320,7 @@ public class JpaRealmProvider implements RealmProvider, ClientProvider, ClientSc
|
||||
Map<String, ClientScopeModel> existingClientScopes = getClientScopes(realm, client, true);
|
||||
existingClientScopes.putAll(getClientScopes(realm, client, false));
|
||||
|
||||
clientScopes.stream()
|
||||
Set<ClientScopeClientMappingEntity> clientScopeEntities = clientScopes.stream()
|
||||
.filter(clientScope -> !existingClientScopes.containsKey(clientScope.getName()))
|
||||
.filter(clientScope -> {
|
||||
if (clientScope.getProtocol() == null) {
|
||||
@@ -1329,15 +1329,18 @@ public class JpaRealmProvider implements RealmProvider, ClientProvider, ClientSc
|
||||
}
|
||||
return acceptedClientProtocols.contains(clientScope.getProtocol());
|
||||
})
|
||||
.forEach(clientScope -> {
|
||||
.map(clientScope -> {
|
||||
ClientScopeClientMappingEntity entity = new ClientScopeClientMappingEntity();
|
||||
entity.setClientScopeId(clientScope.getId());
|
||||
entity.setClientId(client.getId());
|
||||
entity.setDefaultScope(defaultScope);
|
||||
em.persist(entity);
|
||||
return entity;
|
||||
}).collect(Collectors.toSet());
|
||||
if (!clientScopeEntities.isEmpty()) {
|
||||
em.flush();
|
||||
em.detach(entity);
|
||||
});
|
||||
clientScopeEntities.forEach(entity -> em.detach(entity));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1854,7 +1854,6 @@ public class RealmAdapter implements StorageProviderRealmModel, JpaModel<RealmEn
|
||||
action.setPriority(model.getPriority());
|
||||
realm.getRequiredActionProviders().add(action);
|
||||
em.persist(action);
|
||||
em.flush();
|
||||
model.setId(action.getId());
|
||||
return model;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user