From 75ce266cb167c93832b8de658805fd908689dce8 Mon Sep 17 00:00:00 2001 From: Wikum Weerakutti Date: Tue, 15 Oct 2024 13:49:11 +0530 Subject: [PATCH] TRUNK-6274: Fix Issues with Hibernate Envers Audit Table Generation for Specific Tables --- api/src/main/java/org/openmrs/BaseOpenmrsMetadata.java | 2 +- api/src/main/java/org/openmrs/LocationAttributeType.java | 5 +++++ .../main/java/org/openmrs/attribute/BaseAttributeType.java | 4 ++-- .../openmrs/api/db/hibernate/DiagnosisAttributeType.hbm.xml | 2 +- .../openmrs/api/db/hibernate/ProgramAttributeType.hbm.xml | 2 +- .../liquibase/updates/liquibase-update-to-latest-2.7.x.xml | 4 ++++ .../databasechange/ValidateHibernateMappingsDatabaseIT.java | 1 + 7 files changed, 15 insertions(+), 5 deletions(-) diff --git a/api/src/main/java/org/openmrs/BaseOpenmrsMetadata.java b/api/src/main/java/org/openmrs/BaseOpenmrsMetadata.java index 482e34bb3dfb..c92321d2d75f 100644 --- a/api/src/main/java/org/openmrs/BaseOpenmrsMetadata.java +++ b/api/src/main/java/org/openmrs/BaseOpenmrsMetadata.java @@ -38,7 +38,7 @@ public abstract class BaseOpenmrsMetadata extends BaseOpenmrsObject implements O @Field private String name; - @Column(name = "description", columnDefinition = "clob") + @Column(name = "description", columnDefinition = "text") private String description; @ManyToOne(optional = false) diff --git a/api/src/main/java/org/openmrs/LocationAttributeType.java b/api/src/main/java/org/openmrs/LocationAttributeType.java index 1fe43226c635..b11ca1db29a8 100644 --- a/api/src/main/java/org/openmrs/LocationAttributeType.java +++ b/api/src/main/java/org/openmrs/LocationAttributeType.java @@ -15,6 +15,8 @@ import org.openmrs.attribute.AttributeType; import org.openmrs.attribute.BaseAttributeType; +import javax.persistence.AttributeOverride; +import javax.persistence.AttributeOverrides; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -30,6 +32,9 @@ @Entity @Table(name = "location_attribute_type") @Audited +@AttributeOverrides({ + @AttributeOverride(name = "description", column = @Column(name = "description", length = 1024, columnDefinition = "varchar")) +}) public class LocationAttributeType extends BaseAttributeType implements AttributeType { @Id diff --git a/api/src/main/java/org/openmrs/attribute/BaseAttributeType.java b/api/src/main/java/org/openmrs/attribute/BaseAttributeType.java index 292346fdad98..dc5d9a346f0c 100644 --- a/api/src/main/java/org/openmrs/attribute/BaseAttributeType.java +++ b/api/src/main/java/org/openmrs/attribute/BaseAttributeType.java @@ -34,13 +34,13 @@ public abstract class BaseAttributeType> exte @Column(name = "datatype", length = 255) private String datatypeClassname; - @Column(name = "datatype_config", length = 65535) + @Column(name = "datatype_config", length = 65535, columnDefinition = "text") private String datatypeConfig; @Column(name = "preferred_handler", length = 255) private String preferredHandlerClassname; - @Column(name = "handler_config", length = 65535) + @Column(name = "handler_config", length = 65535, columnDefinition = "text") private String handlerConfig; /** diff --git a/api/src/main/resources/org/openmrs/api/db/hibernate/DiagnosisAttributeType.hbm.xml b/api/src/main/resources/org/openmrs/api/db/hibernate/DiagnosisAttributeType.hbm.xml index c596b8f06ed0..02e6e47f46b8 100644 --- a/api/src/main/resources/org/openmrs/api/db/hibernate/DiagnosisAttributeType.hbm.xml +++ b/api/src/main/resources/org/openmrs/api/db/hibernate/DiagnosisAttributeType.hbm.xml @@ -26,7 +26,7 @@ - + diff --git a/api/src/main/resources/org/openmrs/api/db/hibernate/ProgramAttributeType.hbm.xml b/api/src/main/resources/org/openmrs/api/db/hibernate/ProgramAttributeType.hbm.xml index 80aa0947ec91..c0112e09f28b 100644 --- a/api/src/main/resources/org/openmrs/api/db/hibernate/ProgramAttributeType.hbm.xml +++ b/api/src/main/resources/org/openmrs/api/db/hibernate/ProgramAttributeType.hbm.xml @@ -26,7 +26,7 @@ - + diff --git a/api/src/main/resources/org/openmrs/liquibase/updates/liquibase-update-to-latest-2.7.x.xml b/api/src/main/resources/org/openmrs/liquibase/updates/liquibase-update-to-latest-2.7.x.xml index 5911cc7ef823..e3e6538ab1f0 100644 --- a/api/src/main/resources/org/openmrs/liquibase/updates/liquibase-update-to-latest-2.7.x.xml +++ b/api/src/main/resources/org/openmrs/liquibase/updates/liquibase-update-to-latest-2.7.x.xml @@ -170,4 +170,8 @@ referencedColumnNames="obs_id"/> + + + + diff --git a/api/src/test/java/org/openmrs/util/databasechange/ValidateHibernateMappingsDatabaseIT.java b/api/src/test/java/org/openmrs/util/databasechange/ValidateHibernateMappingsDatabaseIT.java index 453e5c614edf..347908352909 100644 --- a/api/src/test/java/org/openmrs/util/databasechange/ValidateHibernateMappingsDatabaseIT.java +++ b/api/src/test/java/org/openmrs/util/databasechange/ValidateHibernateMappingsDatabaseIT.java @@ -95,6 +95,7 @@ private SessionFactory buildSessionFactory() { configuration.setProperty(Environment.USE_SECOND_LEVEL_CACHE, "false"); configuration.setProperty(Environment.USE_QUERY_CACHE, "false"); configuration.setProperty("hibernate.integration.envers.enabled", "false"); + configuration.setProperty(Environment.STORAGE_ENGINE, "InnoDB"); // Validate HBMs against the actual schema configuration.setProperty(Environment.HBM2DDL_AUTO, "validate");