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