From fd2895eb8b76cc4f95601142f0650c0513404390 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Slov=C3=ADk?= <xslovik@fi.muni.cz>
Date: Tue, 4 Apr 2023 19:40:47 +0200
Subject: [PATCH] Implementing BaseRepository

---
 .../repository/common/BaseRepository.java     | 42 +++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 core/src/main/java/cz/muni/fi/pa165/core/data/repository/common/BaseRepository.java

diff --git a/core/src/main/java/cz/muni/fi/pa165/core/data/repository/common/BaseRepository.java b/core/src/main/java/cz/muni/fi/pa165/core/data/repository/common/BaseRepository.java
new file mode 100644
index 0000000..c74d7d4
--- /dev/null
+++ b/core/src/main/java/cz/muni/fi/pa165/core/data/repository/common/BaseRepository.java
@@ -0,0 +1,42 @@
+package cz.muni.fi.pa165.core.data.repository.common;
+
+import cz.muni.fi.pa165.core.data.domain.common.DomainEntity;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.Optional;
+
+/**
+ * BaseRepository for common CRUD operations
+ *
+ * @param <E> Entity
+ * @param <K> Key
+ * @author martinslovik
+ */
+@Repository
+public interface BaseRepository<E extends DomainEntity, K> extends CrudRepository<E, K> {
+
+    <S extends E> S save(S entity);
+
+    <S extends E> Iterable<S> saveAll(Iterable<S> entities);
+
+    Optional<E> findById(K id);
+
+    boolean existsById(K id);
+
+    Iterable<E> findAll();
+
+    Iterable<E> findAllById(Iterable<K> ids);
+
+    long count();
+
+    void deleteById(K id);
+
+    void delete(E entity);
+
+    void deleteAllById(Iterable<? extends K> ids);
+
+    void deleteAll(Iterable<? extends E> entities);
+
+    void deleteAll();
+}
-- 
GitLab