From ee085bba686f23ed09175e869b1a0e5f2ed3f8d0 Mon Sep 17 00:00:00 2001 From: Avgustin Marinov Date: Fri, 15 Nov 2024 20:25:08 +0200 Subject: [PATCH] JpaRolloutGroup javax.persisence.Convert(er) (#2041) Signed-off-by: Avgustin Marinov --- .../repository/jpa/model/JpaRolloutGroup.java | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) 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 fd9973955..ccc3d2dd7 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 @@ -12,10 +12,13 @@ package org.eclipse.hawkbit.repository.jpa.model; import java.io.Serial; import java.util.Collections; import java.util.List; +import java.util.Map; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.ConstraintMode; +import jakarta.persistence.Convert; +import jakarta.persistence.Converter; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; import jakarta.persistence.ForeignKey; @@ -32,13 +35,11 @@ import lombok.Getter; import lombok.Setter; import org.eclipse.hawkbit.repository.event.remote.RolloutGroupDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.RolloutGroupUpdatedEvent; +import org.eclipse.hawkbit.repository.jpa.utils.MapAttributeConverter; import org.eclipse.hawkbit.repository.model.Rollout; import org.eclipse.hawkbit.repository.model.RolloutGroup; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; -import org.eclipse.persistence.annotations.ConversionValue; -import org.eclipse.persistence.annotations.Convert; -import org.eclipse.persistence.annotations.ObjectTypeConverter; /** * JPA entity definition of persisting a group of an rollout. @@ -57,17 +58,25 @@ public class JpaRolloutGroup extends AbstractJpaNamedEntity implements RolloutGr @JoinColumn(name = "rollout", nullable = false, updatable = false, foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_rolloutgroup_rollout")) private JpaRollout rollout; + @Converter + public static class RolloutGroupStatusConverter extends MapAttributeConverter { + + public RolloutGroupStatusConverter() { + super(Map.of( + RolloutGroupStatus.READY, 0, + RolloutGroupStatus.SCHEDULED, 1, + RolloutGroupStatus.FINISHED, 2, + RolloutGroupStatus.ERROR, 3, + RolloutGroupStatus.RUNNING, 4, + RolloutGroupStatus.CREATING, 5 + )); + } + } + @Setter @Getter @Column(name = "status", nullable = false) - @ObjectTypeConverter(name = "rolloutgroupstatus", objectType = RolloutGroup.RolloutGroupStatus.class, dataType = Integer.class, conversionValues = { - @ConversionValue(objectValue = "READY", dataValue = "0"), - @ConversionValue(objectValue = "SCHEDULED", dataValue = "1"), - @ConversionValue(objectValue = "FINISHED", dataValue = "2"), - @ConversionValue(objectValue = "ERROR", dataValue = "3"), - @ConversionValue(objectValue = "RUNNING", dataValue = "4"), - @ConversionValue(objectValue = "CREATING", dataValue = "5") }) - @Convert("rolloutgroupstatus") + @Convert(converter = RolloutGroupStatusConverter.class) private RolloutGroupStatus status = RolloutGroupStatus.CREATING; @OneToMany(mappedBy = "rolloutGroup", fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.REMOVE }, targetEntity = RolloutTargetGroup.class)