Skip to content

Commit

Permalink
Use pessimistic lock while generating generating Id
Browse files Browse the repository at this point in the history
  • Loading branch information
alisihab committed Sep 13, 2024
1 parent 048f7a9 commit 9612816
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ public void load() throws ResponseStatusException {
@Override
public ResponseEntity<?> execute() throws ConverterException {
EmulateParameterRepository repository = SpringContext.getBean(EmulateParameterRepository.class);
var prefixparam = repository.getOne("DocumentIdentificatiePrefix");
var idparam = repository.getOne("DocumentIdentificatieHuidige");
var prefixparam = repository.getById("DocumentIdentificatiePrefix");
var idparam = repository.getByIdWithLock("DocumentIdentificatieHuidige");
var identificatie = Long.parseLong(idparam.getParameterValue()) + 1;
idparam.setParameterValue(Long.toString(identificatie));
repository.save(idparam);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ zaakidentificatie, hiervoor gelden de volgende regels (genomen uit RGBZ):
*/

EmulateParameterRepository repository = SpringContext.getBean(EmulateParameterRepository.class);
var prefixparam = repository.getOne("ZaakIdentificatiePrefix");
var idparam = repository.getOne("ZaakIdentificatieHuidige");
var prefixparam = repository.getById("ZaakIdentificatiePrefix");
var idparam = repository.getByIdWithLock("ZaakIdentificatieHuidige");
var identificatie = Long.parseLong(idparam.getParameterValue()) + 1;
idparam.setParameterValue(Long.toString(identificatie));
repository.save(idparam);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,20 @@
*/
package nl.haarlem.translations.zdstozgw.jpa;

import javax.persistence.LockModeType;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Lock;
import org.springframework.stereotype.Repository;

import nl.haarlem.translations.zdstozgw.jpa.model.EmulateParameter;

@Repository
public interface EmulateParameterRepository extends JpaRepository<EmulateParameter, String> {

// use pessimistic locking for id generation
@Lock(LockModeType.PESSIMISTIC_WRITE)
default EmulateParameter getByIdWithLock(String id) {
return getById(id);
}
}

0 comments on commit 9612816

Please sign in to comment.