diff --git a/hapi-fhir-jpaserver-base/pom.xml b/hapi-fhir-jpaserver-base/pom.xml index caf88e3ada1..3abe003466f 100644 --- a/hapi-fhir-jpaserver-base/pom.xml +++ b/hapi-fhir-jpaserver-base/pom.xml @@ -481,6 +481,21 @@ hibernate-core ${hibernate_version} + + org.hibernate + hibernate-envers + ${hibernate_version} + + + javax.xml.bind + jaxb-api + ${jaxb_api_version} + + + com.sun.xml.bind + jaxb-impl + ${jaxb_api_version} + diff --git a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceHistoryProvenanceEntity.java b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceHistoryProvenanceEntity.java index b7519672bcb..c4ddcefa986 100644 --- a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceHistoryProvenanceEntity.java +++ b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceHistoryProvenanceEntity.java @@ -23,6 +23,7 @@ package ca.uhn.fhir.jpa.model.entity; import ca.uhn.fhir.rest.api.Constants; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import org.hibernate.envers.Audited; import javax.persistence.Column; import javax.persistence.Entity; @@ -36,12 +37,15 @@ import javax.persistence.MapsId; import javax.persistence.OneToOne; import javax.persistence.Table; +import static org.hibernate.envers.RelationTargetAuditMode.NOT_AUDITED; + @Table(name = "HFJ_RES_VER_PROV", indexes = { @Index(name = "IDX_RESVERPROV_SOURCEURI", columnList = "SOURCE_URI"), @Index(name = "IDX_RESVERPROV_REQUESTID", columnList = "REQUEST_ID"), //@Index(name = "IDX_RESVERPROV_RESID", columnList = "RES_PID") }) @Entity +@Audited(targetAuditMode = NOT_AUDITED) public class ResourceHistoryProvenanceEntity extends BasePartitionable { public static final int SOURCE_URI_LENGTH = 100; diff --git a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamQuantityNormalized.java b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamQuantityNormalized.java index ef34acab0b5..1fd5b32c22e 100644 --- a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamQuantityNormalized.java +++ b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamQuantityNormalized.java @@ -28,6 +28,7 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import org.fhir.ucum.Pair; +import org.hibernate.envers.Audited; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.ScaledNumberField; import javax.persistence.Column; @@ -48,6 +49,7 @@ import java.util.Objects; import static org.apache.commons.lang3.StringUtils.defaultString; import static org.apache.commons.lang3.StringUtils.isBlank; +import static org.hibernate.envers.RelationTargetAuditMode.NOT_AUDITED; //@formatter:off @Embeddable @@ -63,6 +65,7 @@ import static org.apache.commons.lang3.StringUtils.isBlank; * @since 5.3.0 * */ +@Audited(targetAuditMode = NOT_AUDITED) public class ResourceIndexedSearchParamQuantityNormalized extends BaseResourceIndexedSearchParamQuantity { private static final long serialVersionUID = 1L; diff --git a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamString.java b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamString.java index f3348d114ed..3199a3502db 100644 --- a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamString.java +++ b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamString.java @@ -30,6 +30,7 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import org.hibernate.envers.Audited; import javax.persistence.Column; import javax.persistence.Embeddable; @@ -45,6 +46,7 @@ import javax.persistence.SequenceGenerator; import javax.persistence.Table; import static org.apache.commons.lang3.StringUtils.defaultString; +import static org.hibernate.envers.RelationTargetAuditMode.NOT_AUDITED; //@formatter:off @Embeddable @@ -64,6 +66,7 @@ import static org.apache.commons.lang3.StringUtils.defaultString; @Index(name = "IDX_SP_STRING_RESID", columnList = "RES_ID") }) +@Audited(targetAuditMode = NOT_AUDITED) public class ResourceIndexedSearchParamString extends BaseResourceIndexedSearchParam { /* diff --git a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamToken.java b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamToken.java index ebc10bd512a..31f8228dcb3 100644 --- a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamToken.java +++ b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamToken.java @@ -30,6 +30,7 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import org.hibernate.envers.Audited; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.FullTextField; import javax.persistence.Column; @@ -48,6 +49,7 @@ import javax.persistence.Table; import static org.apache.commons.lang3.StringUtils.defaultString; import static org.apache.commons.lang3.StringUtils.trim; +import static org.hibernate.envers.RelationTargetAuditMode.NOT_AUDITED; @Embeddable @Entity @@ -66,6 +68,7 @@ import static org.apache.commons.lang3.StringUtils.trim; @Index(name = "IDX_SP_TOKEN_RESID_V2", columnList = "RES_ID,HASH_SYS_AND_VALUE,HASH_VALUE,HASH_SYS,HASH_IDENTITY,PARTITION_ID") }) +@Audited(targetAuditMode = NOT_AUDITED) public class ResourceIndexedSearchParamToken extends BaseResourceIndexedSearchParam { public static final int MAX_LENGTH = 200; diff --git a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamUri.java b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamUri.java index f4166359810..32d4664645c 100644 --- a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamUri.java +++ b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceIndexedSearchParamUri.java @@ -28,6 +28,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; +import org.hibernate.envers.Audited; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.FullTextField; import javax.persistence.Column; @@ -45,6 +46,7 @@ import javax.persistence.SequenceGenerator; import javax.persistence.Table; import static org.apache.commons.lang3.StringUtils.defaultString; +import static org.hibernate.envers.RelationTargetAuditMode.NOT_AUDITED; @Embeddable @Entity @@ -56,6 +58,7 @@ import static org.apache.commons.lang3.StringUtils.defaultString; @Index(name = "IDX_SP_URI_UPDATED", columnList = "SP_UPDATED"), @Index(name = "IDX_SP_URI_COORDS", columnList = "RES_ID") }) +@Audited(targetAuditMode = NOT_AUDITED) public class ResourceIndexedSearchParamUri extends BaseResourceIndexedSearchParam { /* diff --git a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceLink.java b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceLink.java index 6c4bfa0bf42..81822f33831 100644 --- a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceLink.java +++ b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceLink.java @@ -23,6 +23,7 @@ package ca.uhn.fhir.jpa.model.entity; import org.apache.commons.lang3.Validate; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.hibernate.envers.Audited; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.FullTextField; import org.hl7.fhir.instance.model.api.IIdType; @@ -44,12 +45,15 @@ import javax.persistence.TemporalType; import javax.persistence.Transient; import java.util.Date; +import static org.hibernate.envers.RelationTargetAuditMode.NOT_AUDITED; + @Entity @Table(name = "HFJ_RES_LINK", indexes = { @Index(name = "IDX_RL_TPATHRES", columnList = "SRC_PATH,TARGET_RESOURCE_ID"), @Index(name = "IDX_RL_SRC", columnList = "SRC_RESOURCE_ID"), @Index(name = "IDX_RL_DEST", columnList = "TARGET_RESOURCE_ID") }) +@Audited(targetAuditMode = NOT_AUDITED) public class ResourceLink extends BaseResourceIndex { public static final int SRC_PATH_LENGTH = 500; diff --git a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceTag.java b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceTag.java index 4b97d4d65f2..59da20c9def 100644 --- a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceTag.java +++ b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/ResourceTag.java @@ -24,6 +24,7 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import org.hibernate.envers.Audited; import javax.persistence.Column; import javax.persistence.Entity; @@ -39,6 +40,8 @@ import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.persistence.UniqueConstraint; +import static org.hibernate.envers.RelationTargetAuditMode.NOT_AUDITED; + @Entity @Table( name = "HFJ_RES_TAG", @@ -48,6 +51,7 @@ import javax.persistence.UniqueConstraint; }, uniqueConstraints = { @UniqueConstraint(name = "IDX_RESTAG_TAGID", columnNames = {"RES_ID", "TAG_ID"}) }) +@Audited(targetAuditMode = NOT_AUDITED) public class ResourceTag extends BaseTag { private static final long serialVersionUID = 1L; diff --git a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/SearchParamPresentEntity.java b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/SearchParamPresentEntity.java index 4a1be218563..47a054bc97d 100644 --- a/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/SearchParamPresentEntity.java +++ b/hapi-fhir-jpaserver-model/src/main/java/ca/uhn/fhir/jpa/model/entity/SearchParamPresentEntity.java @@ -24,16 +24,20 @@ import ca.uhn.fhir.interceptor.model.RequestPartitionId; import ca.uhn.fhir.jpa.model.config.PartitionSettings; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import org.hibernate.envers.Audited; import javax.persistence.*; import java.io.Serializable; +import static org.hibernate.envers.RelationTargetAuditMode.NOT_AUDITED; + @Entity @Table(name = "HFJ_RES_PARAM_PRESENT", indexes = { // We used to have a constraint named IDX_RESPARMPRESENT_SPID_RESID - Don't reuse @Index(name = "IDX_RESPARMPRESENT_RESID", columnList = "RES_ID"), @Index(name = "IDX_RESPARMPRESENT_HASHPRES", columnList = "HASH_PRESENCE") }) +@Audited(targetAuditMode = NOT_AUDITED) public class SearchParamPresentEntity extends BasePartitionable implements Serializable { private static final long serialVersionUID = 1L;