From 1e46d584c816aba9c0a33fffad860b3aed3993a3 Mon Sep 17 00:00:00 2001 From: Brendan Le Ny Date: Fri, 21 Jun 2024 11:53:07 +0200 Subject: [PATCH] Type "type" column in Hibernate --- src/main/java/sh/libre/scim/jpa/ScimResource.java | 7 ++++--- src/main/java/sh/libre/scim/jpa/ScimResourceDao.java | 4 ++-- src/main/java/sh/libre/scim/jpa/ScimResourceId.java | 11 ++++++----- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/sh/libre/scim/jpa/ScimResource.java b/src/main/java/sh/libre/scim/jpa/ScimResource.java index 5536a6dd96..cacc92e81d 100644 --- a/src/main/java/sh/libre/scim/jpa/ScimResource.java +++ b/src/main/java/sh/libre/scim/jpa/ScimResource.java @@ -9,6 +9,7 @@ import jakarta.persistence.NamedQuery; import jakarta.persistence.Table; import sh.libre.scim.core.EntityOnRemoteScimId; import sh.libre.scim.core.KeycloakId; +import sh.libre.scim.core.ScimResourceType; @Entity @IdClass(ScimResourceId.class) @@ -33,7 +34,7 @@ public class ScimResource { @Id @Column(name = "TYPE", nullable = false) - private String type; + private ScimResourceType type; @Id @Column(name = "EXTERNAL_ID", nullable = false) @@ -71,11 +72,11 @@ public class ScimResource { this.externalId = externalId; } - public String getType() { + public ScimResourceType getType() { return type; } - public void setType(String type) { + public void setType(ScimResourceType type) { this.type = type; } diff --git a/src/main/java/sh/libre/scim/jpa/ScimResourceDao.java b/src/main/java/sh/libre/scim/jpa/ScimResourceDao.java index 7d96b2819d..02a473cb67 100644 --- a/src/main/java/sh/libre/scim/jpa/ScimResourceDao.java +++ b/src/main/java/sh/libre/scim/jpa/ScimResourceDao.java @@ -45,7 +45,7 @@ public class ScimResourceDao { public void create(KeycloakId id, EntityOnRemoteScimId externalId, ScimResourceType type) { ScimResource entity = new ScimResource(); - entity.setType(type.name()); + entity.setType(type); entity.setExternalId(externalId.asString()); entity.setComponentId(componentId); entity.setRealmId(realmId); @@ -56,7 +56,7 @@ public class ScimResourceDao { private TypedQuery getScimResourceTypedQuery(String queryName, String id, ScimResourceType type) { return getEntityManager() .createNamedQuery(queryName, ScimResource.class) - .setParameter("type", type.name()) + .setParameter("type", type) .setParameter("realmId", getRealmId()) .setParameter("componentId", getComponentId()) .setParameter("id", id); diff --git a/src/main/java/sh/libre/scim/jpa/ScimResourceId.java b/src/main/java/sh/libre/scim/jpa/ScimResourceId.java index 99bce7673e..bfb442497b 100644 --- a/src/main/java/sh/libre/scim/jpa/ScimResourceId.java +++ b/src/main/java/sh/libre/scim/jpa/ScimResourceId.java @@ -1,6 +1,7 @@ package sh.libre.scim.jpa; import org.apache.commons.lang3.StringUtils; +import sh.libre.scim.core.ScimResourceType; import java.io.Serializable; import java.util.Objects; @@ -9,13 +10,13 @@ public class ScimResourceId implements Serializable { private String id; private String realmId; private String componentId; - private String type; + private ScimResourceType type; private String externalId; public ScimResourceId() { } - public ScimResourceId(String id, String realmId, String componentId, String type, String externalId) { + public ScimResourceId(String id, String realmId, String componentId, ScimResourceType type, String externalId) { this.setId(id); this.setRealmId(realmId); this.setComponentId(componentId); @@ -47,11 +48,11 @@ public class ScimResourceId implements Serializable { this.componentId = componentId; } - public String getType() { + public ScimResourceType getType() { return type; } - public void setType(String type) { + public void setType(ScimResourceType type) { this.type = type; } @@ -74,7 +75,7 @@ public class ScimResourceId implements Serializable { return (StringUtils.equals(o.id, id) && StringUtils.equals(o.realmId, realmId) && StringUtils.equals(o.componentId, componentId) && - StringUtils.equals(o.type, type) && + Objects.equals(o.type, type) && StringUtils.equals(o.externalId, externalId)); }