diff --git a/src/main/java/me/braydon/feather/data/Document.java b/src/main/java/me/braydon/feather/data/Document.java index 8da2c88..525f010 100644 --- a/src/main/java/me/braydon/feather/data/Document.java +++ b/src/main/java/me/braydon/feather/data/Document.java @@ -113,8 +113,12 @@ public class Document { @NonNull public Map toMappedData() { Map mappedData = new LinkedHashMap<>(); // The mapped data - for (Map.Entry> entry : this.mappedData.entrySet()) { - mappedData.put(entry.getKey(), entry.getValue().getRight()); + try { + for (Map.Entry> entry : this.mappedData.entrySet()) { + mappedData.put(entry.getKey(), entry.getValue().getRight()); + } + } catch (Exception ex) { + ex.printStackTrace(); } return mappedData; } diff --git a/src/main/java/me/braydon/feather/database/Repository.java b/src/main/java/me/braydon/feather/database/Repository.java index d3e1f48..5a013d2 100644 --- a/src/main/java/me/braydon/feather/database/Repository.java +++ b/src/main/java/me/braydon/feather/database/Repository.java @@ -129,7 +129,6 @@ public abstract class Repository, ID, E> { rawDataField = field; continue; } - // Not the field we're looking for if (!field.isAnnotationPresent(me.braydon.feather.annotation.Field.class)) { continue; diff --git a/src/main/java/me/braydon/feather/database/impl/redis/RedisRepository.java b/src/main/java/me/braydon/feather/database/impl/redis/RedisRepository.java index 895b614..fb256cf 100644 --- a/src/main/java/me/braydon/feather/database/impl/redis/RedisRepository.java +++ b/src/main/java/me/braydon/feather/database/impl/redis/RedisRepository.java @@ -7,12 +7,10 @@ package me.braydon.feather.database.impl.redis; import io.lettuce.core.api.sync.RedisCommands; import lombok.NonNull; -import me.braydon.feather.common.Tuple; import me.braydon.feather.data.Document; import me.braydon.feather.database.Repository; import me.braydon.feather.database.impl.redis.annotation.TTL; -import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -86,15 +84,13 @@ public class RedisRepository extends Repository { commands.hmset(key, document.toMappedData()); // Set the mapped document in the database // Handling @TTL annotations - for (Tuple tuple : document.getMappedData().values()) { - Field field = tuple.getLeft(); - if (!field.isAnnotationPresent(TTL.class)) { // Missing @TTL - continue; - } - long ttl = field.getAnnotation(TTL.class).value(); // Get the ttl value - if (ttl > 0L) { // Value is above zero, set it - commands.expire(key, ttl); - } + Class clazz = entity.getClass(); // The entity class + if (!clazz.isAnnotationPresent(TTL.class)) { // Missing @TTL + continue; + } + long ttl = clazz.getAnnotation(TTL.class).value(); // Get the ttl value + if (ttl > 0L) { // Value is above zero, set it + commands.expire(key, ttl); } } if (multi) { // Execute the commands in bulk diff --git a/src/main/java/me/braydon/feather/database/impl/redis/annotation/TTL.java b/src/main/java/me/braydon/feather/database/impl/redis/annotation/TTL.java index 7312d9d..f35dae5 100644 --- a/src/main/java/me/braydon/feather/database/impl/redis/annotation/TTL.java +++ b/src/main/java/me/braydon/feather/database/impl/redis/annotation/TTL.java @@ -8,7 +8,7 @@ package me.braydon.feather.database.impl.redis.annotation; import java.lang.annotation.*; /** - * Fields flagged with this annotation will + * Entities tagged with this annotation will * expire after the amount of defined seconds. * * @author Braydon