Remove extra flush events to increase performance

Closes #43362

Signed-off-by: Alexander Schwartz <alexander.schwartz@ibm.com>
This commit is contained in:
Alexander Schwartz
2025-10-15 12:39:49 +02:00
committed by GitHub
parent 4c570d925b
commit 02dfb4bd8a
2 changed files with 21 additions and 19 deletions

View File

@@ -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

View File

@@ -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;
}