diff --git a/src/main/java/tech/ailef/dbadmin/dbmapping/DbAdminRepository.java b/src/main/java/tech/ailef/dbadmin/dbmapping/DbAdminRepository.java index d2716ee..9a70c99 100644 --- a/src/main/java/tech/ailef/dbadmin/dbmapping/DbAdminRepository.java +++ b/src/main/java/tech/ailef/dbadmin/dbmapping/DbAdminRepository.java @@ -195,6 +195,12 @@ public class DbAdminRepository { Map allValues = new HashMap<>(); allValues.putAll(values); + values.keySet().forEach(fieldName -> { + if (values.get(fieldName).isBlank()) { + allValues.put(fieldName, null); + } + }); + files.keySet().forEach(f -> { try { allValues.put(f, files.get(f).getBytes()); diff --git a/src/main/java/tech/ailef/dbadmin/dbmapping/DbObject.java b/src/main/java/tech/ailef/dbadmin/dbmapping/DbObject.java index 7fd4406..efa3647 100644 --- a/src/main/java/tech/ailef/dbadmin/dbmapping/DbObject.java +++ b/src/main/java/tech/ailef/dbadmin/dbmapping/DbObject.java @@ -21,6 +21,9 @@ public class DbObject { private DbObjectSchema schema; public DbObject(Object instance, DbObjectSchema schema) { + if (instance == null) + throw new DbAdminException("Trying to build object with instance == null"); + this.instance = instance; this.schema = schema; } @@ -54,6 +57,8 @@ public class DbObject { OneToOne oneToOne = field.getPrimitiveField().getAnnotation(OneToOne.class); if (oneToOne != null || manyToOne != null) { Object linkedObject = get(field.getJavaName()).getValue(); + if (linkedObject == null) return null; + DbObject linkedDbObject = new DbObject(linkedObject, field.getConnectedSchema()); return linkedDbObject; } else { diff --git a/src/main/resources/templates/fragments/data_row.html b/src/main/resources/templates/fragments/data_row.html index c59b035..b9b22cb 100644 --- a/src/main/resources/templates/fragments/data_row.html +++ b/src/main/resources/templates/fragments/data_row.html @@ -33,7 +33,7 @@ - +