/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.envers.test.integration.inheritance.mixed.entities; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.JoinColumns; import javax.persistence.ManyToOne; import javax.persistence.PrimaryKeyJoinColumn; import javax.persistence.SecondaryTable; import org.hibernate.envers.Audited; @Audited @Entity @DiscriminatorValue(value = "CHECK") @SecondaryTable(name = "ACTIVITY_CHECK", pkJoinColumns = { @PrimaryKeyJoinColumn(name = "ACTIVITY_ID"), @PrimaryKeyJoinColumn(name = "ACTIVITY_ID2") }) public abstract class AbstractCheckActivity extends AbstractActivity { @Column(table = "ACTIVITY_CHECK") private Integer durationInMinutes; @ManyToOne(targetEntity = AbstractActivity.class, cascade = CascadeType.MERGE, fetch = FetchType.LAZY) @JoinColumns({ @JoinColumn(table = "ACTIVITY_CHECK", referencedColumnName = "id"), @JoinColumn(table = "ACTIVITY_CHECK", referencedColumnName = "id2") }) private Activity relatedActivity; public Integer getDurationInMinutes() { return durationInMinutes; } public void setDurationInMinutes(Integer durationInMinutes) { this.durationInMinutes = durationInMinutes; } public Activity getRelatedActivity() { return relatedActivity; } public void setRelatedActivity(Activity relatedActivity) { this.relatedActivity = relatedActivity; } }