From c393d90845884e77c480425176eec1fbb531563e Mon Sep 17 00:00:00 2001 From: Honah J Date: Fri, 18 Apr 2025 10:23:58 -0700 Subject: [PATCH] add PrimaryKey to policy mapping records JPA model --- extension/persistence/jpa-model/build.gradle.kts | 2 ++ .../polaris/jpa/models/ModelPolicyMappingRecord.java | 10 ++++++++++ getting-started/assets/eclipselink/persistence.xml | 1 + 3 files changed, 13 insertions(+) diff --git a/extension/persistence/jpa-model/build.gradle.kts b/extension/persistence/jpa-model/build.gradle.kts index 0bc5af7bee..ab782fd79d 100644 --- a/extension/persistence/jpa-model/build.gradle.kts +++ b/extension/persistence/jpa-model/build.gradle.kts @@ -24,6 +24,8 @@ plugins { dependencies { implementation(project(":polaris-core")) + implementation(libs.eclipselink) + compileOnly(libs.jakarta.validation.api) compileOnly(libs.jakarta.annotation.api) compileOnly(libs.jakarta.persistence.api) diff --git a/extension/persistence/jpa-model/src/main/java/org/apache/polaris/jpa/models/ModelPolicyMappingRecord.java b/extension/persistence/jpa-model/src/main/java/org/apache/polaris/jpa/models/ModelPolicyMappingRecord.java index 122eeadb88..c779758430 100644 --- a/extension/persistence/jpa-model/src/main/java/org/apache/polaris/jpa/models/ModelPolicyMappingRecord.java +++ b/extension/persistence/jpa-model/src/main/java/org/apache/polaris/jpa/models/ModelPolicyMappingRecord.java @@ -18,12 +18,14 @@ */ package org.apache.polaris.jpa.models; +import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Index; import jakarta.persistence.Table; import jakarta.persistence.Version; import org.apache.polaris.core.policy.PolarisPolicyMappingRecord; +import org.eclipse.persistence.annotations.PrimaryKey; @Entity @Table( @@ -33,6 +35,14 @@ name = "POLICY_MAPPING_RECORDS_BY_POLICY_INDEX", columnList = "policyCatalogId,policyId,targetCatalogId,targetId") }) +@PrimaryKey( + columns = { + @Column(name = "targetCatalogId"), + @Column(name = "targetId"), + @Column(name = "policyTypeCode"), + @Column(name = "policyCatalogId"), + @Column(name = "policyId") + }) public class ModelPolicyMappingRecord { // id of the catalog where target entity resides @Id private long targetCatalogId; diff --git a/getting-started/assets/eclipselink/persistence.xml b/getting-started/assets/eclipselink/persistence.xml index 54fb795a39..5ffd9d1b37 100644 --- a/getting-started/assets/eclipselink/persistence.xml +++ b/getting-started/assets/eclipselink/persistence.xml @@ -28,6 +28,7 @@ org.apache.polaris.jpa.models.ModelEntityChangeTracking org.apache.polaris.jpa.models.ModelEntityDropped org.apache.polaris.jpa.models.ModelGrantRecord + org.apache.polaris.jpa.models.ModelPolicyMappingRecord org.apache.polaris.jpa.models.ModelPrincipalSecrets org.apache.polaris.jpa.models.ModelSequenceId NONE