package de.randi2.model.randomization;
import java.util.Map;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import lombok.Data;
import lombok.EqualsAndHashCode;
import de.randi2.model.TreatmentArm;
import de.randi2.model.TrialSite;
import de.randi2.model.criteria.constraints.AbstractConstraint;
@Entity
@Data
@EqualsAndHashCode(callSuper=true)
public class MinimizationTempData extends AbstractRandomizationTempData {
private static final long serialVersionUID = -69397485726955392L;
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinTable(
name="MinimizationTempData_Probabilities",
joinColumns = @JoinColumn( name="treatmentArm_id"),
inverseJoinColumns = @JoinColumn( name="minimizationMapElementWrapper_id")
)
private Map<TreatmentArm, MinimizationMapElementWrapper> probabilitiesPerPreferredTreatment;
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinTable(
name="MinimizationTempData_CountConstraints",
joinColumns = @JoinColumn( name="constraints_id"),
inverseJoinColumns = @JoinColumn( name="minimizationMapElementWrapper_id")
)
private Map<AbstractConstraint<?>,MinimizationMapElementWrapper> countConstraints;
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinTable(
name="MinimizationTempData_countTrialSites",
joinColumns = @JoinColumn( name="trialSite_id"),
inverseJoinColumns = @JoinColumn( name="minimizationMapElementWrapper_id")
)
private Map<TrialSite,MinimizationMapElementWrapper> countTrialSites;
}