When using Hibernate Envers the property `org.hibernate.envers.default_schema` correctly works when deciding the entity schemas.
But when the tables REVCHANGES and REVINFO are being created this property is ignored and the tables are created in the default schema.
For example (this code is in kotlin, for brevity), this works:
{code:java} package ...
import org.hibernate.annotations.Fetch import org.hibernate.annotations.FetchMode import java.util.HashSet import org.hibernate.envers.ModifiedEntityNames import javax.persistence.JoinColumn import javax.persistence.JoinTable import javax.persistence.ElementCollection import org.hibernate.envers.DefaultRevisionEntity import org.hibernate.envers.RevisionEntity import javax.persistence.Column import javax.persistence.Entity import javax.persistence.FetchType import javax.persistence.Table
/** * */ @Entity @Table(name = "revision", schema = "audit") @RevisionEntity class RevisionEntity : DefaultRevisionEntity() {
/** * */ @ElementCollection(fetch = FetchType.EAGER) @JoinTable(name = "entity_class_name_revision", schema = "audit", joinColumns = [JoinColumn(name = "revision_id")]) @Column(name = "entity_class_name") @Fetch(FetchMode.JOIN) @ModifiedEntityNames private var modifiedEntityNames: Set<String>? = HashSet() } {code}
but this not:
{code:java} package ...
import org.hibernate.annotations.Fetch import org.hibernate.annotations.FetchMode import java.util.HashSet import org.hibernate.envers.ModifiedEntityNames import javax.persistence.JoinColumn import javax.persistence.JoinTable import javax.persistence.ElementCollection import org.hibernate.envers.DefaultRevisionEntity import org.hibernate.envers.RevisionEntity import javax.persistence.Column import javax.persistence.Entity import javax.persistence.FetchType import javax.persistence.Table
/** * */ @Entity @Table(name = "revision") @RevisionEntity class RevisionEntity : DefaultRevisionEntity() {
/** * */ @ElementCollection(fetch = FetchType.EAGER) @JoinTable(name = "entity_class_name_revision", schema = "audit", joinColumns = [JoinColumn(name = "revision_id")]) @Column(name = "entity_class_name") @Fetch(FetchMode.JOIN) @ModifiedEntityNames private var modifiedEntityNames: Set<String>? = HashSet() } {code}
In this last case the tables are created in the default schema, instead of "audit" schema. Where the hibernate property is `set to org.hibernate.envers.default_schema = "audit"`. |
|