From 574d94ca470b48aaa10edc31fd4a3c93da978803 Mon Sep 17 00:00:00 2001 From: George V Date: Mon, 29 May 2023 20:28:30 +0300 Subject: [PATCH] fix: entity serialization and deserialization --- .../library/utilities/EntityManager.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/database/src/main/java/com/georgev22/library/utilities/EntityManager.java b/database/src/main/java/com/georgev22/library/utilities/EntityManager.java index e60f071..af970a3 100644 --- a/database/src/main/java/com/georgev22/library/utilities/EntityManager.java +++ b/database/src/main/java/com/georgev22/library/utilities/EntityManager.java @@ -119,9 +119,14 @@ public CompletableFuture load(UUID entityId) { case MONGODB -> { Document document = mongoDB.getCollection(collection).find(Filters.eq("entityId", entityId.toString())).first(); if (document != null) { - T entity = (T) document.get("entity"); - loadedEntities.put(entityId, entity); - return entity; + String serializedEntity = document.getString("entity"); + try { + T entity = (T) Utils.deserializeObjectFromString(serializedEntity); + loadedEntities.put(entityId, entity); + return entity; + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } } else { throw new RuntimeException("No entity found with id: " + entityId); } @@ -163,12 +168,12 @@ public CompletableFuture save(Entity entity) { String query = result ? "UPDATE " + collection + " SET entity = ? WHERE entity_id = ?;" : "INSERT INTO " + collection + " (entity, entity_id) VALUES (?, ?)"; try { PreparedStatement statement = Objects.requireNonNull(connection).prepareStatement(query); - String serializedEntity = Utils.serialize(entity); + String serializedEntity = Utils.serializeObjectToString(entity); statement.setString(1, serializedEntity); statement.setString(2, entity.getId().toString()); statement.executeUpdate(); statement.close(); - } catch (SQLException e) { + } catch (SQLException | IOException e) { throw new RuntimeException(e); } });