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;