From 17929d0ca0ffe4aca50e768e74e392faf127efb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gargalovi=C4=8D?= <xgargal@fi.muni.cz> Date: Tue, 11 Apr 2023 12:13:33 +0200 Subject: [PATCH] changed id to Long and added delete and update --- .../common/DomainObject.java | 6 +++-- .../common/DomainService.java | 25 ++++++++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/common/DomainObject.java b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/common/DomainObject.java index 8520e8aa..f56b95e0 100644 --- a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/common/DomainObject.java +++ b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/common/DomainObject.java @@ -1,5 +1,7 @@ package org.fuseri.modulelanguageschool.common; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.MappedSuperclass; import lombok.Getter; @@ -13,6 +15,6 @@ import java.util.UUID; public abstract class DomainObject { @Id - private String id = UUID.randomUUID().toString(); -} + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id;} diff --git a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/common/DomainService.java b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/common/DomainService.java index 706071fb..eb30e2e3 100644 --- a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/common/DomainService.java +++ b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/common/DomainService.java @@ -1,5 +1,6 @@ package org.fuseri.modulelanguageschool.common; +import jakarta.persistence.EntityNotFoundException; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -10,7 +11,7 @@ public abstract class DomainService<T extends DomainObject> { public static final int DEFAULT_PAGE_SIZE = 10; - public abstract JpaRepository<T, String> getRepository(); + public abstract JpaRepository<T, Long> getRepository(); @Transactional public T create(T entity) { @@ -26,4 +27,26 @@ public abstract class DomainService<T extends DomainObject> { public Page<T> findAll(int page) { return getRepository().findAll(PageRequest.of(page, DEFAULT_PAGE_SIZE)); } + + /** + * Delete an entity with specified id + * @param id id of the entity to delete + */ + public void delete(long id) { + getRepository().deleteById(id); + } + + + /** + * Update an entity + * + * @param entity the entity to update + * @return the updated entity + */ + public T update(T entity) { + if (!getRepository().existsById(entity.getId())) { + throw new EntityNotFoundException("Entity with id " + entity.getId() + " not found."); + } + return getRepository().save(entity); + } } -- GitLab