package org.hibernate.envers.test.integration.naming; import javax.persistence.AssociationOverride; import javax.persistence.AttributeOverride; import javax.persistence.AttributeOverrides; import javax.persistence.Column; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.Table; import org.hibernate.envers.AuditOverride; import org.hibernate.envers.AuditOverrides; import org.hibernate.envers.test.entities.components.Component1; /** * Test entity, containing two embedded components, which each contain a list of * {@link VersionsJoinTableRangeTestEntitySuperClass}-instances * * @author Erik-Berndt Scheper */ @Entity @Table(name = "COMPONENT_TEST_ENTITY") public class VersionsJoinTableRangeComponentTestEntity { @Id @GeneratedValue @Column(name = "ID") private Integer id; /** * An embedded component, containing a list of * {@link VersionsJoinTableRangeTestEntity}-instances. */ @Embedded @AssociationOverride(name = "range", joinColumns = { @JoinColumn(name = "VJTRCTE1_ID", insertable = true, updatable = false, nullable = false) }) @org.hibernate.envers.Audited @AuditOverride(name = "range", auditJoinTable = @org.hibernate.envers.AuditJoinTable(name = "JOIN_TABLE_COMPONENT_1_AUD", inverseJoinColumns = @JoinColumn(name = "VJTRTE_ID"))) private VersionsJoinTableRangeComponent<VersionsJoinTableRangeTestEntity> component1 = new VersionsJoinTableRangeComponent<VersionsJoinTableRangeTestEntity>(); /** * An embedded component, containing a list of * {@link VersionsJoinTableRangeTestAlternateEntity}-instances. */ @Embedded @AssociationOverride(name = "range", joinColumns = { @JoinColumn(name = "VJTRCTE2_ID", insertable = true, updatable = false, nullable = false) }) @org.hibernate.envers.Audited @AuditOverrides(value = { @AuditOverride(name = "range", auditJoinTable = @org.hibernate.envers.AuditJoinTable(name = "JOIN_TABLE_COMPONENT_2_AUD", inverseJoinColumns = @JoinColumn(name = "VJTRTAE_ID"))) }) private VersionsJoinTableRangeComponent<VersionsJoinTableRangeTestAlternateEntity> component2 = new VersionsJoinTableRangeComponent<VersionsJoinTableRangeTestAlternateEntity>(); /** * An embedded component, containing a list of NOT AUDITED * {@link VersionsJoinTableRangeTestAlternateEntity}-instances. */ @Embedded @AttributeOverrides(value={@AttributeOverride(name="str1", column=@Column(name="STR1")), @AttributeOverride(name="str2", column=@Column(name="STR2"))}) @org.hibernate.envers.Audited @AuditOverrides(value={@AuditOverride(name="str2", isAudited = false)}) private Component1 component3; /** * Default constructor */ public VersionsJoinTableRangeComponentTestEntity() { super(); } /** * @return the id */ public Integer getId() { return id; } /** * @param id * the id to set */ protected void setId(Integer id) { this.id = id; } /** * @return the component1 */ public VersionsJoinTableRangeComponent<VersionsJoinTableRangeTestEntity> getComponent1() { return component1; } /** * @param component1 * the component1 to set */ public void setComponent1( VersionsJoinTableRangeComponent<VersionsJoinTableRangeTestEntity> component1) { this.component1 = component1; } /** * @return the component2 */ public VersionsJoinTableRangeComponent<VersionsJoinTableRangeTestAlternateEntity> getComponent2() { return component2; } /** * @param component2 * the component2 to set */ public void setComponent2( VersionsJoinTableRangeComponent<VersionsJoinTableRangeTestAlternateEntity> component2) { this.component2 = component2; } /** * @return the component3 */ public Component1 getComponent3() { return component3; } /** * @param component3 * the component3 to set */ public void setComponent3(Component1 component3) { this.component3 = component3; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((component1 == null) ? 0 : component1.hashCode()); result = prime * result + ((component2 == null) ? 0 : component2.hashCode()); result = prime * result + ((component3 == null) ? 0 : component3.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; VersionsJoinTableRangeComponentTestEntity other = (VersionsJoinTableRangeComponentTestEntity) obj; if (component1 == null) { if (other.component1 != null) return false; } else if (!component1.equals(other.component1)) return false; if (component2 == null) { if (other.component2 != null) return false; } else if (!component2.equals(other.component2)) return false; if (component3 == null) { if (other.component3 != null) return false; } else if (!component3.equals(other.component3)) return false; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } @Override public String toString() { StringBuilder output = new StringBuilder(); output.append("VersionsJoinTableRangeComponentTestEntity {"); output.append(" id = \"").append(this.getId()).append("\","); output.append(" component1 = \"").append(this.component1) .append("\", "); output.append(" component2 = \"").append(this.component2).append("\"}"); output.append(" component3 = \"").append(this.component3).append("\"}"); return output.toString(); } }