diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java index 0ac3657f8..4e175fd3c 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java @@ -103,7 +103,7 @@ public class JpaAction extends AbstractJpaTenantAwareBaseEntity implements Actio ActionType.SOFT, 1, ActionType.TIMEFORCED, 2, ActionType.DOWNLOAD_ONLY, 3 - )); + ), null); } } @Column(name = "action_type", nullable = false) @@ -136,7 +136,7 @@ public class JpaAction extends AbstractJpaTenantAwareBaseEntity implements Actio put(Status.CANCEL_REJECTED, 9); put(Status.DOWNLOADED, 10); put(Status.WAIT_FOR_CONFIRMATION, 11); - }}); + }}, null); } } @Column(name = "status", nullable = false) diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java index 974bbc8cf..042d7d616 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java @@ -92,7 +92,7 @@ public class JpaRollout extends AbstractJpaNamedEntity implements Rollout, Event put(RolloutStatus.WAITING_FOR_APPROVAL, 11); put(RolloutStatus.APPROVAL_DENIED, 12); put(RolloutStatus.STOPPING, 13); - }}); + }}, null); } } @Column(name = "status", nullable = false) diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java index ccc3d2dd7..906a232af 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java @@ -69,7 +69,7 @@ public class JpaRolloutGroup extends AbstractJpaNamedEntity implements RolloutGr RolloutGroupStatus.ERROR, 3, RolloutGroupStatus.RUNNING, 4, RolloutGroupStatus.CREATING, 5 - )); + ), null); } } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java index 1ba473819..c3896d476 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java @@ -129,7 +129,7 @@ public class JpaTarget extends AbstractJpaNamedEntity implements Target, EventAw TargetUpdateStatus.PENDING, 2, TargetUpdateStatus.ERROR, 3, TargetUpdateStatus.REGISTERED, 4 - )); + ), null); } } @Column(name = "update_status", nullable = false) diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/utils/MapAttributeConverter.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/utils/MapAttributeConverter.java index b68b6a37d..863f0c88d 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/utils/MapAttributeConverter.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/utils/MapAttributeConverter.java @@ -10,6 +10,7 @@ package org.eclipse.hawkbit.repository.jpa.utils; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; import jakarta.persistence.AttributeConverter; @@ -18,9 +19,11 @@ public class MapAttributeConverter, DB_TYPE> i private final Map javaToDbMap; private final Map dbToJavaMap; + private final DB_TYPE nullMapping; - protected MapAttributeConverter(final Map javaToDbMap) { + protected MapAttributeConverter(final Map javaToDbMap, final DB_TYPE nullMapping) { this.javaToDbMap = javaToDbMap; + this.nullMapping = nullMapping; this.dbToJavaMap = javaToDbMap.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey)); if (javaToDbMap.size() != dbToJavaMap.size()) { throw new IllegalArgumentException("Duplicate values in javaToDbMap"); @@ -30,13 +33,16 @@ public class MapAttributeConverter, DB_TYPE> i @Override public DB_TYPE convertToDatabaseColumn(final JAVA_TYPE attribute) { if (attribute == null) { - return null; + return nullMapping; } return javaToDbMap.get(attribute); } @Override public JAVA_TYPE convertToEntityAttribute(final DB_TYPE dbData) { + if (Objects.equals(dbData, nullMapping)) { + return null; + } return dbToJavaMap.get(dbData); } }