Package at.letto.databaseclient.caches
Class GenericRedisCache<T extends IdEntity>
java.lang.Object
at.letto.databaseclient.caches.GenericRedisCache<T>
- All Implemented Interfaces:
CacheInterface<T>
@Service
public abstract class GenericRedisCache<T extends IdEntity>
extends Object
implements CacheInterface<T>
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) BaseLettoRedisDBService
private int
private TimeUnit
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
Check, ob Redis-Datenbank verfügbar istvoid
clear
(LettoToken token) Löschen von allen Cache-Einträgen dieses Typs von DTOsprivate String
Erstellung eines Keys für das Speichern eines DTOs (IdEntity) in der Redis-Datenbank.
Zusammensetzung des Keys: schule:class-name:idload
(int id, LettoToken token) Öffentliche Methode zum Laden eines DTOs aus dem Cache.loadData
(int id, LettoToken token) Methode zum Laden des DTOs aus der Datenbank.protected T
loadData
(int id, Class<T> type, LettoToken token) Laden eines DTOs aus der Redis-Datenbank Ist Redis nicht funktionsfähig, dann Abbruch, null wird zurückgegebenprotected abstract T
loadExternalData
(LettoToken token, int id, String key) Methode wird aufgerufen, wenn im Cache kein Eintrag gefunden wurde.
Dient zum Laden des jeweiligen DTOs aus der SQL-Datenbank über das Datenservice.void
put
(T data, int id, LettoToken token) Speichern eines DTOs in der Datenbankmit einer anderen ID.
Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldung.void
put
(T data, LettoToken token) Speichern eines DTOs in der Datenbank unter dessen ID.
Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldung.void
remove
(int id, LettoToken token) Löschen eines DTOs mit ID aus einem Cache.void
Lösschen eines DTOs aus dem Redis-Cache.
Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldungvoid
Löschen eines DTOs mit ID aus einem Cache.
-
Field Details
-
baseLettoRedisDBService
-
timeUnit
-
timeout
private int timeout
-
-
Constructor Details
-
GenericRedisCache
public GenericRedisCache()
-
-
Method Details
-
checkRedis
public boolean checkRedis()Check, ob Redis-Datenbank verfügbar ist -
load
Öffentliche Methode zum Laden eines DTOs aus dem Cache.- Specified by:
load
in interfaceCacheInterface<T extends IdEntity>
- Parameters:
id
- ID des gesuchten Objekts (DTO muss IdEntity implementiert haben!)token
- LettoToken zur Ermittlung der Schule- Returns:
- DTO aus dem Cache
-
loadData
Methode zum Laden des DTOs aus der Datenbank. Muss im Kindelement überschrieben werden, um den korrekten Typ an loadData(id, Classtype, ... ) übergeben zu können. Wird intern von load(...) aufgerufen. - Parameters:
id
- ID, nach der gesucht werden solltoken
- LettoToken zur Ermittlung des Schul-Namens- Returns:
- DTO
-
loadExternalData
Methode wird aufgerufen, wenn im Cache kein Eintrag gefunden wurde.
Dient zum Laden des jeweiligen DTOs aus der SQL-Datenbank über das Datenservice. Wenn DTO korrekt geladen wurde, wird es im Redis-Cache gespeichert!- Parameters:
token
- LeTTo-Tokenid
- ID des DTOs in der SQL-Datenbankkey
- Key für das Abfragen in der Redis-Datenbank- Returns:
- DTO aus MySQL-Datenbank
-
remove
Description copied from interface:CacheInterface
Löschen eines DTOs mit ID aus einem Cache.- Specified by:
remove
in interfaceCacheInterface<T extends IdEntity>
- Parameters:
id
- ID des DTOstoken
- LeTTo-Token zur Ermittlung der Schule
-
remove
Description copied from interface:CacheInterface
Löschen eines DTOs mit ID aus einem Cache.- Specified by:
remove
in interfaceCacheInterface<T extends IdEntity>
- Parameters:
id
- ID des DTOsschool
- Schul-Kurzbezeichnertoken
- Token in Stringform (Bearer-Token)
-
loadData
Laden eines DTOs aus der Redis-Datenbank Ist Redis nicht funktionsfähig, dann Abbruch, null wird zurückgegeben- Parameters:
id
- Id (Datenelement muss IdEntity implementiert haben)type
- Ziel-Type (Class) für JSONtoken
- LeTTo-Token- Returns:
- DTO oder null
-
put
Speichern eines DTOs in der Datenbank unter dessen ID.
Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldung.- Specified by:
put
in interfaceCacheInterface<T extends IdEntity>
- Parameters:
data
- Datenelement, muss IdEntity implementiert habentoken
- LeTTo-Token zur Autentifizierung
-
put
Speichern eines DTOs in der Datenbankmit einer anderen ID.
Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldung.- Parameters:
data
- Datenelement, muss IdEntity implementiert habentoken
- LeTTo-Token zur Autentifizierung
-
key
Erstellung eines Keys für das Speichern eines DTOs (IdEntity) in der Redis-Datenbank.
Zusammensetzung des Keys: schule:class-name:id- Parameters:
id
- ID des DTOstype
- Class des DTOsschool
- Schulname- Returns:
- Redis-Key
-
remove
Lösschen eines DTOs aus dem Redis-Cache.
Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldung- Parameters:
id
- ID des DTOs (IdEntity)type
- class des DTOsschool
- Schulname (Kurzbezeichner)
-
clear
Description copied from interface:CacheInterface
Löschen von allen Cache-Einträgen dieses Typs von DTOs- Specified by:
clear
in interfaceCacheInterface<T extends IdEntity>
- Parameters:
token
- LeTTo-Token zur Schulidentifikation
-